Java SOAP 1.2消息发送到仅限SOAP 1.1的端点时无效
我犯了个错误,从spring批处理应用程序调用spring cxf webservice时。仅当从批处理调用时才会发生此错误。从普通soap UI调用时,其工作正常。一旦从批处理调用某些记录,就会处理这些记录。少数记录发生错误。检查了批处理和webservice的soap版本及其一样Java SOAP 1.2消息发送到仅限SOAP 1.1的端点时无效,java,spring,spring-batch,Java,Spring,Spring Batch,我犯了个错误,从spring批处理应用程序调用spring cxf webservice时。仅当从批处理调用时才会发生此错误。从普通soap UI调用时,其工作正常。一旦从批处理调用某些记录,就会处理这些记录。少数记录发生错误。检查了批处理和webservice的soap版本及其一样 org.apache.cxf.binding.soap.SoapFault: A SOAP 1.2 message is not valid when sent to a SOAP 1.1 only endpoin
org.apache.cxf.binding.soap.SoapFault: A SOAP 1.2 message is not valid when sent to a SOAP 1.1 only endpoint.
at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:144)
at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:60)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:799)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1627)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1494)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1402)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:649)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:533)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
批量配置
<jaxws:client id="mainClient"
serviceClass="com.batch.service.MainSoap"
address="${url}" />
只要添加Soap绑定,就可以识别根本原因的任何帮助或方法都将不胜感激
<jaxws:endpoint id="mainClient" serviceClass="com.batch.service.MainSoap"
address="${url}">
<jaxws:binding>
<soap:soapBinding version="1.2" mtomEnabled="true" />
</jaxws:binding>
</jaxws:endpoint>
将此注释添加到您的服务界面上,我已尝试使用它
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
将生成类DeliveryService:
@WebService(targetNamespace = "http://...", name = "ServiceInterface")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
public interface ServiceInterface {
@WebResult(name = "response", targetNamespace = "http:///", partName = "response")
我只是在使用CXF框架时遇到了同样的问题。这是由于端点的错误配置造成的:wsdlLocation没有指向wsdl文件。。。 定义wsdl位置有多种方法:可以在端点初始化期间提供(端点构造函数将可选的wsdlLocation作为参数),也可以为wsdl2java任务提供一个“wsdlLocation”参数(如果从wsdls生成类)
指向错误的wsdlLocation可能是此异常的原因…您可以共享配置的特定部分吗?@SerkanArıkuşu编辑了批配置问题。您没有向我们展示将主客户端Jax WS客户端对象挂接到Spring批处理中的配置/代码。需要哪些配置?指定在我的情况下,绑定没有帮助。如何在没有spring的情况下使绑定soap 1.2?Spring以某种方式根据
进行操作,我需要在没有Spring的情况下也这样做(仅限cxf)