Я получаю нулевое значение для empID в запросе RequestControllers RequestBody MyReq. Когда я вызвал службу Rest, используя ниже JSON Request.
{
"EmpID": [
"1111","1234"
]
}
Это мой контроллер
@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 сгенерировал MyReq и Классы EmpID из 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;
}
}
}
сгенерированный класс EmpID
@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;
}
}
Я пробовал использовать empID также в JSON Request. Я все еще получаю нулевые значения.