2010-12-13 5 views
9

Estoy usando netbeans para generar un cliente de servicio web en mi aplicación. Y mi programa usa la biblioteca jax-ws para establecer el tiempo de espera en llamar al servicio web.Cómo ocultar la advertencia en el cliente jax-ws que (tal vez) causada por la biblioteca jax-ws

problema surge porque generan una gran cantidad de este mensaje de advertencia cada vez que comienzo a este programa .:

Dic 13, 2010 4:35:21 PM [com.sun.xml.ws.policy. EffectiveAlternativeSelector] selectAlternatives ADVERTENCIA: WSP0075: Aserción de política "{http://schemas.xmlsoap.org/ws/2004/10/wsat} ATAlwaysCapability" se evaluó como "DESCONOCIDO".

13-dic-2010 4:35:21 PM [com.sun.xml.ws.policy.EffectiveAlternativeSelector] selectAlternatives ADVERTENCIA: WSP0075: Política afirmación "{} http://schemas.xmlsoap.org/ws/2004/10/wsat ATAssertion" se evaluó como " DESCONOCIDO".

Dec 13, 2010 4:35:21 PM [com.sun.xml.ws.policy.EffectiveAlternativeSelector] selectAlternatives ADVERTENCIA: WSP0019: alternativa de política subóptima seleccionado en el lado del cliente con la aptitud "DESCONOCIDO ".

He encontrado el mismo problema con el mío aquí: http://forums.java.net/node/707265, pero tampoco tiene respuesta hasta ahora.

¿Hay alguna manera de ocultar esta advertencia? Intento buscar utilizando Google y no encuentro ninguna respuesta coincidente para este problema.

Respuesta

4

Mi conjetura es que el WSDL f rom que se generó el cliente contiene afirmaciones de política relacionadas con WS-AtomicTransaction. Como WS-AtomicTransaction requiere un administrador de transacciones y el JRE no contiene uno, no es sorprendente que el tiempo de ejecución de JAX-WS en el JRE no sea compatible con WS-AtomicTransaction y no comprenda estas afirmaciones de políticas.

Si usted no necesita WS-AtomicTransaction, entonces usted tiene dos opciones para deshacerse de estas advertencias:

  • Configurar el registro para suprimir estas advertencias.
  • Elimina las aserciones del WSDL.

Si necesita WS-AtomicTransaction, entonces probablemente tendrá que ejecutar el código en un servidor de aplicaciones o como cliente de aplicaciones Java EE.

+0

En mi caso particular, el WSDL contiene un psaw: aserción de política de uso de dirección. Esa es la única afirmación de política en el WSDL. ¿Alguna sugerencia sobre cómo configurar el cliente para manejar adecuadamente el requisito de direccionamiento? Prefiero arreglarlo que solo suprimir la advertencia. – dthorpe

+0

psaw: UsingAddressing no es una afirmación de política, sino una extensión WSDL, que es otra cosa. ¿Cuál es el mensaje de advertencia que recibe en su caso particular? –

+0

29 de diciembre de 2011 2:10:34 PM [com.sun.xml.internal.ws.policy.EffectiveAlternativeSelector] selectAlternatives ADVERTENCIA: WSP0075: Afirmación de política "{http://www.w3.org/2006/05/ direccionamiento/wsdl} UsingAddressing "se evaluó como" DESCONOCIDO ". 29 de diciembre de 2011 2:10:34 PM [com.sun.xml.internal.ws.policy.EffectiveAlternativeSelector] selectAlternatives ADVERTENCIA: WSP0019: Alternativa de política subóptima seleccionada en el lado del cliente con la aptitud "UNKNOWN". – dthorpe

5

Debe estar utilizando una versión obsoleta de jax-ws (no encontré EffectiveAlternativeSelector en mi copia 2.2.1), pero déjame intentarlo.

  1. Crear un archivo logging.properties en algún camino accesible, mientras que el lanzamiento de su aplicación (por lo menos puede usar la que se encuentra en $JAVA_HOME/lib/logging.properties)
  2. Agregue la siguiente línea al archivo: com.sun.xml.ws.policy.EffectiveAlternativeSelector.level=OFF
  3. poner en marcha su aplicación como

java -Djava.util.logging.config.file=/path/to/your/logging.properties MainClass

+1

Me encontré con esto utilizando Java SE 7u2 sDK descargado de la página de descargas principales de Oracle hace unos días. javac y java report versión 1.7.0_02. ¿Publica Oracle distribuciones obsoletas? – dthorpe

+0

Quise decir la distro jax-ws. Cómo lo conseguiste? ¿Viene incluido con Java SDK? –

+1

Debe haber sido incluido con el Java SDK porque no he instalado nada más. El código generado por wsimport dice "Esta clase fue generada por JAX-WS RI. * JAX-WS RI 2.2.4-b01 * Versión fuente generada: 2.2 " – dthorpe

-3

¿@SupressWarning (value = "?") Tiene algún uso aquí?

0

El @SupressWarnings() no ayuda en este caso. Esa anotación es decirle al compilador que no le advierta cuando potencialmente está utilizando indebidamente algún tipo de Java. Estas advertencias de ws se canalizan a System.err

Cuestiones relacionadas