i am trying to create a web service using the bottom-up approach by first creating the java class. My implementation looks like the following :
@WebMethod(operationName = "addNumbers")
public String addNumbers(
@WebParam(name = "addNumberRequest") @XmlElement(required = true, nillable = false) final AddNumberRequest addNumberRequest) {
return "Hello World";
}
The AddNumberRequest class is the following:
@Repository
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder = { "number1", "number2", "number3" })
public class AddNumberRequest {
private int number1;
private int number2;
private int number3;
public int getNumber1() {
return number1;
}
public void setNumber1(int number1) {
this.number1 = number1;
}
public int getNumber2() {
return number2;
}
public void setNumber2(int number2) {
this.number2 = number2;
}
public int getNumber3() {
return number3;
}
public void setNumber3(int number3) {
this.number3 = number3;
}
}
The web service is published but when i generate a sample request from soapui , the request looks like the following :
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.service.test.com/">
<soapenv:Header/>
<soapenv:Body>
<ws:addNumbers>
<addNumberRequest>
<number1>?</number1>
<number2>?</number2>
<number3>?</number3>
</addNumberRequest>
</ws:addNumbers>
</soapenv:Body>
</soapenv:Envelope>
Is there a way simply by using annotations to create a java implementation of the method so that a sample request would look like this :
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.service.test.com/">
<soapenv:Header/>
<soapenv:Body>
<addNumberRequest>
<number1>?</number1>
<number2>?</number2>
<number3>?</number3>
</addNumberRequest>
</soapenv:Body>
</soapenv:Envelope>
I would like to have the ability to determine the name of the wrapper element for example addNumberRequest without having the ws:addNumbers (which is generated by the operationName by default) element at all.
Try using
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE) on addNumbers interface