Как правильно отформатировать запрос с использованием JAX-WS? - PullRequest
0 голосов
/ 14 мая 2019

Я реплицирую уже существующий SOAP WS, используя JAX-WS. У меня проблемы с пересозданием того же запроса на моем WS.

Это запрос WS, который я должен получить:

    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP-ENV:Header/>
       <SOAP-ENV:Body>
          <ns2:wrapper xmlns:ns2="http://example.com/request" xmlns:ns3="http://example.com/response">
             <ns2:var1>data1</ns2:var1>
             <ns2:var2>data2</ns2:var2>
             <ns2:var3>data3</ns2:var3>
          </ns2:wrapper>
       </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

И вот запрос, которым я заканчиваю:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservices.api.falabella.cl/" xmlns:req="http://example.com/req">
       <soapenv:Header/>
       <soapenv:Body>
          <web:request>
             <wrapper>
                <req:var1>data3</req:var1>
                <req:var2>data2</req:var2>
                <req:var3>data3</req:var3>
             </wrapper>
          </web:request>
       </soapenv:Body>
    </soapenv:Envelope>

Для создания этого запроса у меня есть следующие вещи:

Определение компонента:

    @Component(value = "webService")
    @WebService(name = "request")
    public class WebService {

        @WebMethod
        @WebResult(name = "Response")
        public Response request (
            @WebParam("name="request") @XmlElement(required=true) Request request
        ) {
            // do stuff
        }
    }

Определение запроса:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name="request_TYPE", propOrder = {
    "var1",
    "var2",
    "var3"
})
@XmlRootElement(name="request")
public class Request {

    @XmlElement(required = true)
    protected String var1;
    @XmlElement(required = true)
    protected String var2;
    @XmlElement(required = true)
    protected String var3;

    // get & set
}

Мой вопрос: что я здесь не так делаю? Как мне получить то же определение запроса, что и мне?

...