2014-09-17 2 views
0

Я пытаюсь вызвать пружинный веб-службы, но я получаю следующее исключениеполучение Spring ошибка вебсервис Неверный запрос [UnmarshallingFailureException]

org.springframework.ws.soap.client.SoapFaultClientException: Invalid request[UnmarshallingFailureException] 

Вот моя конфигурация весной

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:p="http://www.springframework.org/schema/p" 
xmlns:util="http://www.springframework.org/schema/util" 
xmlns:oxm="http://www.springframework.org/schema/oxm" 
xmlns:sws="http://www.springframework.org/schema/web-services" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-4.1.xsd 
        ... 
        http://www.springframework.org/schema/web-services 
        http://www.springframework.org/schema/web-services/web-services-2.0.xsd"> 

    <util:list id="packagesToScanList" list-class="java.util.ArrayList"> 
     <value>webservice.messages.lmsapi.serviceoperations</value> 
     <value>webservice.messages.lmsapi.types.user</value> 
     <value>webservice.messages.lmsapi.types.customer</value> 
     <value>webservice.messages.lmsapi.types.enrollment</value> 
     <value>webservice.messages.lmsapi.types.orggroup</value> 
     <value>webservice.messages.lmsapi.types.securityroles</value> 
     <value>webservice.messages.lmsapi.types.trainingplan</value> 
     <value>webservice.messages.lmsapi.types.usergroup</value> 
     <value>org.w3._2001.xmlschema</value> 
    </util:list> 

    <!-- Configure Spring Web Services --> 
    <bean id="lmsApiWebServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate" 
     p:defaultUri="${lmsapi.uri}" 
     p:marshaller-ref="lmsApiJaxbMarshaller" 
     p:unmarshaller-ref="lmsApiJaxbMarshaller" /> 

    <bean id="lmsApiJaxbMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller" 
     p:packagesToScan-ref="packagesToScanList"/> 

Вот как я позвонив по этому адресу

public AddUserResponse createUser(AddUserRequest addUserRequest) { 

    System.out.println(); 
    JAXBElement<AddUserResponse> response = (JAXBElement<AddUserResponse>)lmsApiWebServiceTemplate.marshalSendAndReceive(addUserRequest); 
    AddUserResponse addUserResponse = (AddUserResponse)response.getValue(); 
    return addUserResponse; 
} 

В консоли отладки печатается, что

[org.springframework.ws.client.MessageTracing.sent] - Sent request [SaajSoapMessage {http:/webservice/message/lmsapi/serviceoperations}AddUserRequest] 
[org.springframework.ws.client.MessageTracing.received] - Received response  [SaajSoapMessage {http://schemas.xmlsoap.org/soap/envelope/}Fault] for request [SaajSoapMessage {http://webservice/message/lmsapi/serviceoperations}AddUserRequest] 
[org.springframework.ws.client.core.WebServiceTemplate] - Received Fault message for request [SaajSoapMessage {http://webservice/message/lmsapi/serviceoperations}AddUserRequest] 

Это означает, что вебсервис звонит

Почему я получаю эту ошибку немаршалинг? Есть ли способ увидеть запрос, который весна посылает и получает, и именно там, где я получаю это исключение?

Благодаря

ответ

1

демаршаллинга ошибка заворачивают в SOAP Fault. Таким образом, это происходит на стороне сервера , а не на стороне клиента. Вы должны проверить серверные журналы, чтобы узнать, что там происходит.

Что касается вашего вопроса о регистрации: reference documentation показывает вам, как это сделать.

+0

Ах спасибо. Я выполнил регистрацию, а затем я увидел запрос SOAP, который я отправлял. Затем я сопоставил этот запрос с запросом, созданным SOAPUI. Затем я заметил, что при создании пользователя, который является паролем, я не устанавливаю один мандорирующий элемент. Вот почему я получаю ошибку unmarshalling. После установки этой переменной все будет работать нормально. Спасибо за вашу помощь приятель;) :) – Basit

Смежные вопросы