웹 서비스 SOAP 결함 코드 및 문자열의 동작 변경 확인

이 규칙은 SOAP 결함 및 문자열을 검색하는 메소드에 대한 호출을 플래그 지정합니다. WebSphere Application Server V8에서는 웹 서비스 런타임 환경에서 리턴하는 기본 결함 코드 및 문자열이 변경되었습니다.

특히 다음 메소드가 플래그 지정되었습니다.

XML 암호화를 사용하는 웹 서비스와 관련된 잠재적 보안 노출을 수정하기 위해 기본 결함 코드 및 문자열을 변경했습니다. 수정하는 과정에서, 웹 서비스 런타임 환경에서 생성되는 모든 SOAP 결함에서 자세한 정보가 제거되었습니다. 기본적으로 버전 8에서는 웹 서비스 런타임 환경이 런타임 환경에서 생성된 모든 결함을 결함 코드 soapenv:Server와 결함 문자열 Internal Error를 포함하는 단일 유형의 결함으로 통합합니다.

애플리케이션이 런타임 환경 결함 코드나 문자열의 상세 정보를 필요로 하는 경우에는 애플리케이션을 수정해야 합니다. webservices.unify.faults Java 가상 머신 사용자 정의 특성을 사용하여 기본 동작을 변경할 수도 있습니다. 이전 릴리스의 동작으로 되돌리려면 webservices.unify.faultsfalse로 설정하십시오.

WebSphere Application Server V8 이전에서는 결함 코드나 문자열의 상세 정보를 리턴하는 것이 기본 동작입니다. 또한, 6.0.2, 6.1 및 7.0을 포함한 서비스 스트림에서는 이 문제가 수정되었지만 이러한 릴리스의 기본 동작은 변경되지 않았습니다. 이러한 서비스 릴리스에서는 webservices.unify.faults의 기본값이 false입니다. 이러한 릴리스에서 버전 8과 동일한 동작을 하게 하려면 이 값을 true로 변경하십시오.

JAX-WS 예제:
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 예제:
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() 메소드에 대한 호출을 플래그 지정합니다.

추가 정보는 다음을 참조하십시오.