2013-03-18 2 views
9

Я получаю сообщение об ошибке при вызове spring-cxf-webservice из весеннего пакетного приложения. Эта ошибка происходит только при ее вызове из пакета. При вызове от нормального мыльного UI его рабочего штрафа. И как только его вызов из партии обрабатывает некоторые из обработанных записей. Урон делается для нескольких записей. Проверял версию пакетной и веб-службы SOAP и ее же.Сообщение SOAP 1.2 недействительно при отправке в конечную точку только для SOAP 1.1

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) 

Batch Configuration

<jaxws:client id="mainClient" 
       serviceClass="com.batch.service.MainSoap" 
       address="${url}" /> 

Любая помощь или способ определить первопричину будут оценены

+0

вы можете поделиться определенные части вашей конфигурации? –

+0

@ SerkanArıkuşu отредактировал вопрос с пакетной конфигурацией. – Sajith

+0

Вы не указали нам конфигурацию/код, который перехватывает ваш клиентский объект myClickClient Jax WS в Spring Batch. –

ответ

2

Просто добавьте мыло-Binding.

<jaxws:endpoint id="mainClient" serviceClass="com.batch.service.MainSoap" 
    address="${url}"> 

    <jaxws:binding> 
    <soap:soapBinding version="1.2" mtomEnabled="true" /> 
    </jaxws:binding> 
</jaxws:endpoint> 
+0

Задание привязки в моем случае не помогло. – Artem

+0

Как сделать связующее мыло 1.2 без весны? Spring делает это в соответствии с '' как-то, и мне нужно делать то же самое без весны (только cxf) – 4ntoine

1

добавить аннотацию на интерфейсе сервиса, я пытался его работы для меня

@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") 
0

я просто столкнуться с той же проблемой, используя CXF фреймворк. Это произошло из-за плохой конфигурации конечной точки: wsdlLocation не указывал на wsdl-файл ... Существует несколько способов определения местоположения wsdl: он может быть предоставлен во время инициализации конечной точки (конструктор конечной точки принимает необязательный параметр wsdlLocation как параметр) или задание wsdl2java аргументом wsdlLocation (если вы генерируете свои классы из wsdls).

указывая на неправильное wsdlLocation, может быть, причина этого исключения ...