Добавление нового поля внутри уже реализованного запроса Axis
Я попытаюсь объяснить это вкратце.
Мне нужно включить новое поле с именем shipToStoreGLN в запрос Axis, реализованный давно с использованием дескриптора WSDL.
Он должен появиться в пути OrderRequest -> PedidosIn(OrdersIn) -> Pedido (Order)-> Cabecera (Header)
Я попытался добавить поле, как любое другое поле, но оно не работает, оно не отображается в окончательном запросе.
Еще более странным является то, что есть еще одно поле с именем shipToStore, в которое добавлено добавленное в класс, но оно не добавлено в описание типов, но появляется в окончательном запросе.
Может кто-нибудь сказать мне, как добавить это поле, и, если возможно, объяснить, почему появляется это другое поле?
Я вставлю код, заглушку о том, как должен выглядеть запрос и как он выглядит прямо сейчас.
Спасибо всем.
Соответствующий код класса OrderRequestPedidosInPedidoCabecera.java (я не могу скопировать полный исходный код Java, потому что он слишком длинный):
//The getters and setters
public java.lang.String getShipToStoreGLN() {
return shipToStoreGLN;
}
public void setShipToStoreGLN(java.lang.String shipToStoreGLN) {
this.shipToStoreGLN = shipToStoreGLN;
}
//Applying it to the type descriptor
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("shipToStoreGLN");
elemField.setXmlName(new javax.xml.namespace.QName("http://tempuri.org/GatewayService/", "shipToStoreGLN"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
typeDesc.addFieldDesc(elemField);
Заглушка о том, как должен выглядеть запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:gat="http://tempuri.org/GatewayService/">
<soapenv:Header/>
<soapenv:Body>
<gat:OrderRequest>
<gat:PedidosIn>
<gat:Identificacion>
<gat:IdUsuario>?</gat:IdUsuario>
<gat:Password>?</gat:Password>
</gat:Identificacion>
<gat:Pedido>
<gat:Cabecera>
<gat:NumeroPedido>?</gat:NumeroPedido>
<gat:shipToStore>?</gat:shipToStore>
<gat:shipToStoreGLN>?</gat:shipToStoreGLN>
<gat:FechaPedido>?</gat:FechaPedido>
<gat:Facturacion>
<gat:Nombre>?</gat:Nombre>
<gat:Apellidos>?</gat:Apellidos>
<gat:Direccion>?</gat:Direccion>
<gat:CodigoPostal>?</gat:CodigoPostal>
<gat:Poblacion>?</gat:Poblacion>
<gat:Provincia>?</gat:Provincia>
<gat:NIF>?</gat:NIF>
<gat:Telefono>?</gat:Telefono>
</gat:Facturacion>
<gat:Entrega>
<gat:Nombre>?</gat:Nombre>
<gat:Apellidos>?</gat:Apellidos>
<gat:Direccion>?</gat:Direccion>
<gat:CodigoPostal>?</gat:CodigoPostal>
<gat:Poblacion>?</gat:Poblacion>
<gat:Provincia>?</gat:Provincia>
<gat:NIF>?</gat:NIF>
<gat:Telefono>?</gat:Telefono>
</gat:Entrega>
<gat:Total>?</gat:Total>
<gat:Email>?</gat:Email>
<gat:CodigoTrackingTrans>?</gat:CodigoTrackingTrans>
<gat:NumeroExpedicion>?</gat:NumeroExpedicion>
<gat:CodigoRuta>?</gat:CodigoRuta>
<gat:NombreRuta>?</gat:NombreRuta>
<gat:CodigoAgenciaDestino>?</gat:CodigoAgenciaDestino>
<gat:NombreAgenciaDestino>?</gat:NombreAgenciaDestino>
</gat:Cabecera>
<gat:Lineas>
<!--Zero or more repetitions:-->
<gat:Linea>
<gat:IdPedidoLinea>?</gat:IdPedidoLinea>
<gat:Referencia>?</gat:Referencia>
<gat:ReferenciaMS>?</gat:ReferenciaMS>
<gat:Posicion>?</gat:Posicion>
<gat:Cantidad>?</gat:Cantidad>
<gat:Descripcion>?</gat:Descripcion>
<gat:PrecioUnitario>?</gat:PrecioUnitario>
<gat:Total>?</gat:Total>
</gat:Linea>
</gat:Lineas>
</gat:Pedido>
</gat:PedidosIn>
</gat:OrderRequest>
</soapenv:Body>
</soapenv:Envelope>
Как выглядит запрос сейчас:
<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<OrderRequest xmlns="http://tempuri.org/GatewayService/">
<PedidosIn>
<Identificacion>
<IdUsuario>MMKTTEST</IdUsuario>
<Password>H23mLu3RieDr</Password>
</Identificacion>
<Pedido>
<Cabecera>
<NumeroPedido>000123657</NumeroPedido>
<FechaPedido>20140911 122523</FechaPedido>
<CodigoTiendaFacturacion>E290</CodigoTiendaFacturacion>
<CodigoTiendaEntrega>E290</CodigoTiendaEntrega>
<Facturacion>
<Nombre>Cristina</Nombre>
<Apellidos>Franco</Apellidos>
<Direccion>barcelona,gggg gggg</Direccion>
<CodigoPostal>08022</CodigoPostal>
<Poblacion>BARCELONA</Poblacion>
<Provincia>BARCELONA</Provincia>
<CodigoProvincia>08</CodigoProvincia>
<NIF>52173198K</NIF>
<Telefono>677714997</Telefono>
<pais>es</pais>
</Facturacion>
<Entrega>
<Nombre>MEDIA MARKT DIAGONAL MAR-BARCELONA VIDEO-TV-HIFI-E</Nombre>
<Apellidos>LEKTRO-COMPUTER-FOTO, S.A </Apellidos>
<Direccion>C.C DIAGONAL MAR AVDA DIAGONAL Nº3, planta B local 14000</Direccion>
<CodigoPostal>08019</CodigoPostal>
<Poblacion>BARCELONA</Poblacion>
<Provincia>BARCELONA</Provincia>
<NIF/>
<Telefono>934857200</Telefono>
<direccion1>C.C DIAGONAL MAR AVDA DIAGONAL Nº3, planta B local 14000</direccion1>
<direccion2/>
<direccion3/>
</Entrega>
<Total>219.0</Total>
<Email>crisfrancob@gmail.com</Email>
<CodigoTrackingTrans/>
<NumeroExpedicion/>
<CodigoRuta/>
<NombreRuta/>
<CodigoAgenciaDestino/>
<NombreAgenciaDestino/>
<shipToStore>1</shipToStore>
</Cabecera>
<Lineas>
<Linea>
<IdPedidoLinea>0</IdPedidoLinea>
<Referencia>B99B329</Referencia>
<ReferenciaMS>1148842</ReferenciaMS>
<ReferenciaUni/>
<Posicion>1</Posicion>
<Cantidad>1.0</Cantidad>
<Descripcion>GF EN210 SILENT/DI/1GD3/V2 CTLR 1GB DDR3 PCI-E DVI-I HDMI IN</Descripcion>
<PrecioUnitario>0.0</PrecioUnitario>
<Total>0.0</Total>
</Linea>
</Lineas>
</Pedido>
</PedidosIn>
</OrderRequest>
</soapenv:Body>
1 ответ
Я устанавливал ноль в поле shipToStoreGLN. Теперь я знаю, что вы не можете установить значение NULL и ожидать появления тега XML.