Как маршаллер или демаршаллер JAXBElement <String>Запрос или ответ - PullRequest
0 голосов
/ 07 мая 2019

Я настраиваю клиента веб-службы spring-ws, тип запроса или ответа - JAXBElemet.Как я могу настроить маршаллер?

Я использую файл .xsd для создания динамического wsdl.Файл .xsd выглядит следующим образом:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns:tns="http://com.bytedusk.dev/spring-seed/ws/echo"
        targetNamespace="http://com.bytedusk.dev/spring-seed/ws/echo"
        elementFormDefault="qualified">
<xs:element name="EchoRequest" type="xs:string"></xs:element>
<xs:element name="EchoResponse" type="xs:string"></xs:element>

Мой код XML:

<bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory" />
<!-- <bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
</bean> -->
<bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
    <constructor-arg ref="messageFactory" />
    <property name="marshaller" ref="marshaller"></property>
    <property name="unmarshaller" ref="marshaller"></property>
    <property name="messageSender">
        <bean class="org.springframework.ws.transport.http.HttpComponentsMessageSender"></bean>
    </property>
    <property name="defaultUri" value="http://${webservice.ip}:${webservice.port}/${maven.app-name}/ws/echo" />
</bean>

Код моего клиента:

@Controller
public class MainController {

   @Autowired
   private WebServiceTemplate webServiceTemplate;

   @Autowired
   private JAXBElement<String> requestWSBean;

   @RequestMapping(value="/RequestWS")
   @ResponseBody
   public String RequestWS() throws JAXBException{
      requestWSBean.setValue("Request From SpringWS Template Client");
      JAXBElement<String> response = (JAXBElement<String>) 
            webServiceTemplate.marshalSendAndReceive(requestWSBean);
      return response.getValue();
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...