I am getting null value for empID in RequestControllers RequestBody MyReq request. When I called Rest Service using below JSON Request.
{
"EmpID": [
"1111","1234"
]
}
This is my Controller
@SpringBootApplication
@RestController
public class MessageProcessorApplication {
@Autowired
private SoapClient client;
@RequestMapping(value = "/getIdDetails", method = RequestMethod.POST)
public MyRsp invokeSoapClient(@RequestBody MyReq request)
{
return client.getIdDetails(request);
}
}
My SoapClient class
@Service
public class SoapClient {
@Autowired
private Jaxb2Marshaller marshaller;
private WebServiceTemplate template;
public MyRsp getIdDetails(MyReq request)
{
template = new WebServiceTemplate(marshaller);
MyRsp response = (MyRsp) template.marshalSendAndReceive("http://localhost:8080/ws",request);
return response;
}
}
jaxb generated MyReq and EmpID classes from SOAP Service WSDL
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"empID"
})
@XmlRootElement(name = "MyReq")
public class MyReq
extends BaseReq
{
@XmlElement(name = "EmpID", required = true)
protected List<EmpID> empID;
public void setEmpID(List<EmpID> empID) {
this.empID = empID;
}
public List<EmpID> getEmpID() {
if (empID == null) {
empID = new ArrayList<EmpID>();
}
return this.empID;
}
}
}
generated EmpID class
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"value"
})
@XmlRootElement(name = "EmpID")
public class EmpID {
@XmlValue
protected String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
I have tried with empID also in JSON Request. Still null values I am getting.