ayuda con jaxb webservice
Hola estoy realizando un WebService soap y esto usando jaxb, mi duda es la siguiente, tengo creada mi interface para mi webservice
@WebService
public interface SpeiHostEndPointFC {
¿Como agrego un atributo a este nivel?
@WebResult(name="respuesta")
public SpeiHostEndPointResponse mensaje(@WebParam(name = "ordenpago") SpeiHostEndPointRequest ordenPago);
}
He anexado un atributo en la orden de pago y funciona bien, mi pregunta es como anexo un atributo a la interface que puse para que me reciba una atributo string.
Espero su ayuda. Gracias!
- Nicko1017's blog
- Inicie sesión o regístrese para enviar comentarios
Comentarios
De igual forma
De igual forma que ya lo tenias con el parametro ordenPago, aqui hay un ejemplo que recibe 2 Strings y un USAddress:
public class CustomerService {
@WebMethod
@WebResult(name="CustomerRecord")
public CustomerRecord locateCustomer(
@WebParam(name="FirstName") String firstName,
@WebParam(name="LastName") String lastName,
@WebParam(name="Address") USAddress addr) {
...
}
}
Si te interesa estudiar más checa en la siguiente url: http://java.boot.by/ocewsd6-guide/ch01s02.html
Sería algo más o menos así lo que preguntas:
Gracias por la respuesta
Gracias por la respuesta, y el manual que pones esta muy bien explicado gracias, respecto a mi duda la verdad es que no se si se pueda hacer como lo requiero, pero pongo un ejemplo mas detallado para explicarlo
Teniendo el siguiente codigo
Java Source:
@WebService
public class CustomerService {
@WebMethod
@WebResult(name="CustomerRecord")
public CustomerRecord locateCustomer(
@WebParam(name="FirstName") String firstName,
@WebParam(name="LastName") String lastName,
@WebParam(name="Address") USAddress addr) {
...
}
}
Resulting WSDL:
<types>
<complexType name="CustomerRecord">
...
</complexType>
<complexType name="USAddress">
...
</complexType>
<element name="locateCustomer">
<complexType>
<sequence>
<element name="FirstName" type="xs:string" />
<element name="LastName" type="xs:string" />
<element name="Address" type="USAddress"/>
</sequence>
</complexType>
</element>
<element name="locateCustomerResponse">
<complexType>
<sequence>
<element name="CustomerRecord" type="CustomerRecord"/>
</sequence>
</complexType>
</element>
</types>
<message name="locateCustomer">
<part name="parameters" element="tns:locateCustomer"/>
</message>
<message name="locateCustomerResponse">
<part name="parameters" element="tns:locateCustomerResponse"/>
</message>
<portType name="CustomerService">
<operation name="locateCustomer">
<input message="tns:locateCustomer"/>
<output message="tns:locateCustomerResponse"/>
</operation>
</portType>
</definitions>
COMO LOGRO PONER UN ATRIBUTO A NIVEL DEL ELEMENTO PRINCIPAL ES DECIR:
Teniendo en cuenta el codigo java anterior, y determinando que la operacion es locateCustomer y es la que se crea desde la clase. O si no se puede realizar en esa parte del contexto tambien me gustaria saberlo:
<element name="locateCustomer">
<complexType>
<sequence>
<element name="FirstName" type="xs:string" />
<element name="LastName" type="xs:string" />
<element name="Address" type="USAddress"/>
</sequence>
</complexType>
<atributo> //Aqui ira el atributo
</element>