una sobre poner insertar importar imagenes imagen como botones boton java web-services jaxb jax-ws java-metro-framework

sobre - imagenes java eclipse



¿Cómo puedo hacer que se requiera un parámetro de WebMethod? (3)

El xsd generado muestra minOccurs = 0.

Esto es por especificación: cualquier no primitivo es opcional, solo se requieren primitivos.

Necesito una forma de hacer que los parámetros de WebMethod sean necesarios (tal vez minOccurs = 1 en el xsd) en el enfoque "start from Java".

Esto no es posible, a menos que use primitivos como se mencionó anteriormente.

Y, de hecho, esta es una de las razones por las que Java-first apesta (sí, a los desarrolladores les gusta, pero simplemente no funciona ): es frágil, el contrato puede cambiar (!), No le da todo el control que necesita , no encaja bien con WS-Security , etc. Así que, de hecho, contract-first no es agradable, pero al menos funciona.

Utilizamos el enfoque "comience desde Java" para crear servicios web JAX-WS 2.0 utilizando la pila Metro 1.5. Cuando señalamos una herramienta estándar como SoapUI en uno de nuestros servicios web, indica que los parámetros de WebMethods son opcionales. El xsd generado muestra minOccurs = 0.

Necesito una forma de hacer que los parámetros de WebMethod sean necesarios (tal vez minOccurs = 1 en el xsd) en el enfoque "start from Java". Creo que hay una anotación Java para esto, pero no he podido encontrar ninguna. La anotación XmlElement tiene un atributo obligatorio, pero XmlElement no se puede aplicar a los parámetros de WebMethod.

¿Hay alguna manera de hacer que mis parámetros de WebMethod sean necesarios, salvo editar manualmente el xsd y establecer minOccurs en 1?


Aquí hay otra discusión de esta misma pregunta. Según la respuesta, Metro 2.0 admite poner @XmlElement en un parámetro de método que debería resolver mi problema.

http://forums.java.net/jive/thread.jspa?messageID=385565&#385565

Metro 2.0 fue lanzado el 10 de diciembre de 2009, por lo que ya no está en EA. Lo intentaré y veré si funciona.


He verificado que Metro 2.0 te permite establecer @XmlElement(required=true) en un parámetro. El xsd generado no tiene minOccurs=0 . Deja minOccurs fuera del xsd generado por lo que asume el valor predeterminado de 1.

También debe actualizar su JDK colocando JAX-WS 2.2 webservices-api.jar en el directorio webservices-api.jar endorsed/ .

Publiqué la misma pregunta en los foros de Java .

Gracias a jitu tanto por la respuesta como por señalar que minOccurs se establece de manera predeterminada en 1, por lo que dejarlo fuera de .xsd tiene el efecto deseado.

Cuando se establece @XmlElement (obligatorio = verdadero) en el parámetro, SoapUI ya no indica que el parámetro sea opcional.