我正在尝试将一个XML对象发送到我在WebLogic服务器上发布的WebService,但即使我这样做了,它也总是被接收为null。
下面是 Web 服务的代码以及我发送 XML 的方式。 有什么想法吗?
代码 JAVA 服务方式:
@WebMethod(operationName = "ConsultarRecibosPendientes")
@WebResult(name = "ConsultarRecibosPendientesResult")
public ConsultarRecibosPendientesRes ConsultarRecibosPendientes(@WebParam( name = "oReq")
ConsultarRecibosPendientesReq objeto) {
ConsultarRecibosPendientesRes recibosRes = new ConsultarRecibosPendientesRes();
String LlaveAcceso = objeto.getStrLlaveAcceso();
recibosRes.setStrIdentificacion(LlaveAcceso);
return recibosRes;
}
参数接收的对象的类:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ConsultarRecibosPendientesReq")
public class ConsultarRecibosPendientesReq {
@XmlElement(name = "strLlaveAcceso")
protected String strLlaveAcceso;
public ConsultarRecibosPendientesReq(){ }
public String getStrLlaveAcceso() {
return strLlaveAcceso;
}
public void setStrLlaveAcceso(String strLlaveAcceso) {
this.strLlaveAcceso = strLlaveAcceso;
}
}
对象 QueryReceivePendientesReq 始终为 null。有谁知道如何解决它?
首先,我对通过参数接收的对象的类进行了一些更改:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "consultarRecibosPendientesReq", propOrder = {
"strLlaveAcceso"
})
public class ConsultarRecibosPendientesReq {
protected String strLlaveAcceso;
public String getStrLlaveAcceso() {
return strLlaveAcceso;
}
public void setStrLlaveAcceso(String value) {
this.strLlaveAcceso = value;
}
}
我对 Web 服务方法进行了更改:
@WebMethod(operationName = "ConsultarRecibosPendientes")
@WebResult(name = "ConsultarRecibosPendientesResult")
public ConsultarRecibosPendientesRes ConsultarRecibosPendientes(
@WebParam(name = "oReq", targetNamespace = "")
ConsultarRecibosPendientesReq oReq) {...}
最后,我对发送的XML进行了更改,将"web"子句添加到"方法"和"目标命名空间"标记中,例如:
<?xml version='1.0' encoding='UTF-8'?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<web:ConsultarRecibosPendientes xmlns:web="http://websercice.fi.co/">
<oReq>
<strLlaveAcceso>llave de acceso</strLlaveAcceso>
</oReq>
</web:ConsultarRecibosPendientes>
</soap:Body>
</soap:Envelope>