java - setProperty debe ser reemplazado por todas las subclases de SOAPMessage
web-services jboss (12)
Estoy intentando implementar algunos servicios web en una aplicación WAR en JBoss 5.1.0.
He creado los archivos fuente de un wsdl existente usando la herramienta JAX-WS wsgen
. Esto creó los archivos Service y las clases anotadas @XmlType que actuarían como envoltorios de solicitud y respuesta.
Estas clases funcionaron bien en JBoss 4.2.3, pero cuando me cambio a JBoss 5.1.0, obtengo esta excepción.
java.lang.UnsupportedOperationException: setProperty debe ser reemplazado por todas las subclases de SOAPMessage
Mi configuración:
- Windows XP SP3 (pero obteniendo lo mismo en Vista, así como en Linux)
- Sun JDK 1.6.0_17
- JBoss 5.1.0 GA para jdk6
¡Gracias por adelantado!
Agregar saaj-impl a la carpeta lib de mi aplicación web corrigió este error. Estoy usando JBoss 4.2.3 y CXF 2.4.10.
Asegúrese de iniciar JBoss
con las opciones de jvm
que apuntan a las librerías respaldadas. Esto no está configurado de manera predeterminada si ejecuta JBoss
desde Eclipse, usando WTP
, aunque lo es si inicia JBoss
desde la línea de comando.
Puede agregar lo siguiente a los argumentos de VM de la Configuración de inicio:
-Djava.endorsed.dirs="${JBOSS_HOME}/jboss-as/lib/endorsed"
Copié necesario lib (saaj-impl en mi caso) a mi guerra desde la distribución de cxf y activé el aislamiento del cargador de clases jboss con el archivo /WEB-INF/jboss-classloader.xml del siguiente contenido:
<classloading xmlns="urn:jboss:classloading:1.0"
domain="MyDomain"
export-all="NON_EMPTY"
import-all="true">
</classloading>
Espero que esto ayude a alguien.
Este es el enlace a este problema: https://issues.jboss.org/browse/JBWS-2418
Hay algunas cosas que pueden salir mal, así que le diré lo que ayudó en mi caso (análoga a la suya, estaba usando JDK 1.6.0_13).
El problema radica en que los JAR no coinciden. En primer lugar, asegúrese de que JBoss esté utilizando JDK 1.6 y compruebe su entorno JAVA_HOME. variable. En segundo lugar, asegúrese de que sus clases estén compiladas utilizando JDK 1.6. Si ejecuta su proyecto desde Eclipse, asegúrese de que Eclipse utiliza el JDK correcto, lo mismo si ejecuta JBoss desde Eclipse.
Supongo que tienes razón, entonces llega algo de magia. El cliente en ejecución no utiliza bibliotecas de $ JBOSS_HOME / client, pero usa solo las que se proporcionan en $ JBOSS_HOME / lib / endorsed. Obviamente, si está utilizando cualquier otra API JAX-WS-no relacionada como JPA o EJB o Servlets, puede agregarlos a classpath, pero use solo JAI-WS JARs lib / endorsed.
Me ayudó en mi situación particular en el caso de JBoss 5.1, en versiones anteriores de JBoss se usaron algunos otros trucos, por ejemplo, intente agregar la opción java -Dsun.lang.ClassLoader.allowArraySyntax = true o / y -Djava.endorsed.dirs = $ JBOSS_HOME / lib / endorsed al iniciar su cliente y JBoss.
La configuración de mi servidor es Jboss AS 4.2.1 GA y, como a continuación, funciona;
Bibliotecas que utilicé en lib / endorsed;
- JAXWS2.1.1_20070501
- jbossws-native-jaxrpc
- jbossws-native-jaxws
- jbossws-native-jaxws-ext
- jbossws-native-saaj
- serializador
- xalan
- xercesImpl
Mi proyecto simplemente se basó en:
- CXF 2.5.0 (consumidor de servicio web de jabón)
- Ensamblaje WAR (sin EAR)
- sin jboss-web
- sin carga de clases jboss
- no hay cambios en jboss / lib / endorsed (solo xalan, serializer, xercesImpl)
- ejecutándose en jboss-4.2.1.GA + JDK 1.6
Lo que funcionó para mí fue simplemente agregar esas dependencias maven, junto a CXF:
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
</dependency>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
</dependency>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-tools</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>woodstox-core-asl</artifactId>
</dependency>
<dependency>
<groupId>com.sun.xml.messaging.saaj</groupId>
<artifactId>saaj-impl</artifactId>
</dependency>
Espero que ayude!
Podría deberse a un problema de conflicto con el jar SAAJ
. Copie el Jboss
de Jboss
de Saaj
desde {Jboss_HOME}/LIB
a {JBOSS_HOME}/lib/endorsed
. Espero que esto ayude a resolver el problema,
Si encuentra este error en el cliente mientras ejecuta una aplicación cliente, debe seguir pasos similares además de los de esta answer :
Determine qué instancia de la JVM ejecuta la aplicación. En mi caso, tuve aplicaciones independientes usando el JDK y los applets usando el JRE. Esto será en algún lugar como
/path/jre/bin/
Agregue los jar de esta answer a la
path/jre/lib/endorsed
. Tuve que crear el directorioendorsed
.
Esto le dice a la VM que cargue las implementaciones específicas de jboss antes de que los valores predeterminados del lenguaje java. Esto ocurre en el cargador de clases de arranque, mucho antes de que se carguen los archivos jar en classpath.
Tuve el mismo problema con una actualización de JBoss 4.2.2 y encontré la respuesta en las Notas de la versión de JBoss 5.1.0 :
JBossAS 5.0.0.GA se puede compilar con Java5 y Java6. El binario compilado de Java5 es nuestra distribución binaria primaria / recomendada. Ha sido sometido a rigurosas pruebas y puede ejecutarse tanto en tiempo de ejecución de Java 5 como de Java 6. Cuando se ejecuta en Java 6, debe copiar manualmente las siguientes bibliotecas desde el directorio JBOSS_HOME / client al directorio JBOSS_HOME / lib / endorsed, para que se utilicen las API JAX-WS 2.0 compatibles con JBossWS:
- jbossws-native-saaj.jar
- jbossws-native-jaxrpc.jar
- jbossws-native-jaxws.jar
- jbossws-native-jaxws-ext.jar
Estaba usando la distribución de la compilación de JBoss 5.1.0 con Java 5 (ejecutándose en JDK 1.6.0_20) y, efectivamente, la copia de estos JAR en el directorio endosado solucionó el problema. No usamos la versión compilada para Java 6 debido a la nota:
Sin embargo, debe tenerse en cuenta que la distribución compilada de Java 6 de JBoss AS 5 todavía está en etapa experimental.
Yo uso Jboss AS 4.3. En mi caso, eliminé de la carpeta "deploy" el "jbossws.sar".
Vea este problema: https://issues.jboss.org/browse/JBWS-2821
intente seguir jar a su carpeta jboss / lib / endorsed
jbossws-native-jaxws.jar
jbossws-native-jaxrpc.jar
jbossws-native-saaj.jar
jbossws-native-saaj.jar