Java soap spring ws-如何定制<;故障代码>;soapenv:服务器</故障代码>;至<;故障代码>;一些错误代码。例如(一个数字)</故障代码>;
我正在使用soapspringws创建soapwebservice,我已经成功地 现在我正在这个soap服务中执行错误实现 我可以用我创建的类来实现它,如下所示Java soap spring ws-如何定制<;故障代码>;soapenv:服务器</故障代码>;至<;故障代码>;一些错误代码。例如(一个数字)</故障代码>;,java,spring,web-services,soap,Java,Spring,Web Services,Soap,我正在使用soapspringws创建soapwebservice,我已经成功地 现在我正在这个soap服务中执行错误实现 我可以用我创建的类来实现它,如下所示 public class ServiceSoapFaultMappingExceptionResolver extends SoapFaultMappingExceptionResolver 在下面的重写函数中 @Override protected void customizeFault(Object endpoint, Exce
public class ServiceSoapFaultMappingExceptionResolver extends SoapFaultMappingExceptionResolver
在下面的重写函数中
@Override
protected void customizeFault(Object endpoint, Exception ex, SoapFault fault) {
//code for adding fault details
Result result = fault.addFaultDetail().getResult();
// marshal
try {
JAXBContext.newInstance(ExceptionListType.class).createMarshaller().marshal(exceptionList, result);
}
我创建了自定义soap错误对象并返回了它。
返回的自定义soap错误出现在detail标记中。
看来是我的错
<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring>INVALID NUMBER</faultstring>
<detail>
<ns5:exceptionListType xmlns:ns5="http://wellpoint.com/esb/header/v2">
<ns5:errorCount>1</ns5:errorCount>
<ns5:Exception>
<ns5:UUID> 889c-6f73671534af</ns5:UUID>
<ns5:timestamp>09/04/2015 05:47:40</ns5:timestamp>
<ns5:node>mynode</ns5:node>
<ns5:process>JAVA</ns5:process>
<ns5:component>Unknown Component</ns5:component>
<ns5:code>5009</ns5:code>
<ns5:severity>FATAL</ns5:severity>
<ns5:message>An unexpected server error occurred: INVALID NUMBER</ns5:message>
</ns5:Exception>
</ns5:exceptionListType>
</detail>
</soapenv:Fault>
soapenv:服务器
无效号码
1.
889c-6f73671534af
09/04/2015 05:47:40
我的节点
JAVA
未知成分
5009
致命的
发生意外的服务器错误:无效号码
现在我想做的是,我有一个与上述错误相关联的错误代码,它在代码标签中,但我需要这个错误代码在这个标签中
<faultcode>soapenv:Server</faultcode>
soapenv:Server
像
5009
。我在谷歌上搜索了很多次,但运气不佳。我知道,除了预定义的可用值集之外,使用其他值不是一个好的做法。但我的客户要求是这样的。
如果有人知道答案,请帮助我。
事先非常感谢。我终于找到了解决问题的方法。 在CustomizeDefault方法中,我放置了如下代码
SoapFaultDefinition soapFaultDefinition = new SoapFaultDefinition();
String ENVELOPE_NAMESPACE_URI = "http://schemas.xmlsoap.org/soap/envelope/";
QName FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "5999, "e");
// soapFaultDefinition.setFaultStringOrReason("--" + ex);
// soapFaultDefinition.setLocale(Locale.ENGLISH);
soapFaultDefinition.setFaultCode(FAULT_NAME);
super.setDefaultFault(soapFaultDefinition);
SoapFaultDefinition soapFaultDefinition = new SoapFaultDefinition();
String ENVELOPE_NAMESPACE_URI = "http://schemas.xmlsoap.org/soap/envelope/";
QName FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "5999, "e");
// soapFaultDefinition.setFaultStringOrReason("--" + ex);
// soapFaultDefinition.setLocale(Locale.ENGLISH);
soapFaultDefinition.setFaultCode(FAULT_NAME);
super.setDefaultFault(soapFaultDefinition);