Web サービス SOAP の障害コードおよび障害ストリングでの振る舞いの変更を確認する

この規則は、SOAP の障害コードおよび障害ストリングを取得するメソッドの呼び出しにフラグを立てます。 Web サービスのランタイム環境によって戻されるデフォルトの障害コードおよび障害ストリングは、WebSphere Application Server V8 で変更されました。

特に以下のメソッドにフラグが立てられます。

デフォルトの障害コードおよび障害ストリングに対する変更は、XML 暗号化を使用する Web サービスに関連した機密漏れの可能性を修正するために行われました。 修正の一部として、Web サービス・ランタイム環境によって生成される SOAP 障害から詳細情報が除去されました。 バージョン 8 では、デフォルトで、Web サービス・ランタイム環境は、ランタイム環境によって生成されたすべてのフォールトを、以下のフォールト・コードを含む単一タイプのフォールトに統合します。 soapenv:Server および以下の障害ストリング Internal Error .

アプリケーションがランタイム環境の障害コードまたは障害ストリングからの詳細情報を必要とする場合、アプリケーションを変更する必要がある可能性があります。 以下を使用することもできます。 webservices.unify.faults デフォルトの動作を変更するための Java 仮想マシンのカスタム・プロパティー。 前のリリースの動作に戻すには、次のように設定します。 webservices.unify.faults false .

WebSphere Application Server V8 より前のデフォルトの振る舞いでは、障害コードまたは障害ストリングに詳細情報が戻されました。 この問題は、6.0.2、6.1、7.0 などの一連のサービスでも修正されていますが、これらのリリースではデフォルトの振る舞いは未変更のままです。 サービス・リリースの場合: webservices.unify.faults にはデフォルト値があります false この値を次のように変更します。 true これらのリリースのバージョン 8 と同じ動作になります。

JAX-WS の例:
< span class="Code"> import javax.xml.ws.soap.SOAPFaultException;
import javax.xml.ws.soap.SOAPFault;

try {
// some code that causes a fault
...
} catch (SOAPFaultException e) {
SOAPFault soapFault = e.getFault();
String faultCode = soapFault.getFaultCode();
String faultString = soapFault.getFaultString();
...
}


JAX-RPC の例:
< span class="Code"> import javax.xml.rpc.soap.SOAPFaultException;
import javax.xml.namespace.QName;

try {
// some code that causes a fault
...
} catch (SOAPFaultException e) {
QName faultCode = e.getFaultCode();
String faultString = e.getFaultString();
...
}

これらの例では両方とも、 getFaultCode() および getFaultString() メソッドにフラグが立てられます。

追加情報については、以下を参照してください。