Pregunta

Esta es una continuación de la pregunta aquí: JBoss - Qué aplicación tiene que ser compilado bajo el mismo JDK como JBOSS se ejecuta bajo?

Es diferente lo suficiente sin embargo que requiere una nueva pregunta.

Estoy tratando de utilizar jdk6 ejecutar JBOSS 5.1, y he descargado la versión JDK6 de JBOSS 5.1. Esto funciona bien y mi EAR de la aplicación despliega bien. Sin embargo, cuando quiero ejecutar un cliente de servicios web con código como el siguiente:

public static void main(String[] args) throws Exception {
    System.out.println("creating the web service client...");
    TestClient client = new TestClient("http://localhost:8080/tc_test_project-tc_test_project/TestBean?wsdl");
    Test service = client.getTestPort();
    System.out.println("calling service.retrieveAll() using the service client");
    List<TestEntity> list = service.retrieveAll();
    System.out.println("the number of elements in list retrieved using the client is " + list.size());
}

Me da la siguiente excepción:

javax.xml.ws.WebServiceException: java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage
    at org.jboss.ws.core.jaxws.client.ClientImpl.handleRemoteException(ClientImpl.java:396)
    at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:302)
    at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:170)
    at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:150)

Ahora, Aquí está la parte realmente interesante . Si cambio el JDK que mi el código anterior se ejecuta bajo de JDK6 a JDK5, la excepción anterior desaparece! Es realmente extraño.

La única manera que encontré para el código anterior para ejecutarse en JDK6 era tomar la carpeta lib JBOSS_HOME / / endosado y copiarlo en JDK6_HOME / lib. Esto parece que no debería ser necesario, pero lo es.

¿Hay alguna otra manera de hacer este trabajo que no sea utilizando la solución que acabo de describir?

¿Fue útil?

Solución

Looks más o menos como si se ejecutó en presencia de JAX-WS como una función oficial de JDK 1.6. No copiar cosas a 'lib', copiarlos en un directorio 'aprobado' (que está enumerado en java.endorsed.dirs). Este podría ser útil.

Si usted tiene una puesta al día 1.6, puede evitar esto de la misma manera que Apache CXF hace. Consulte la documentación para obtener información sobre cómo utilizar CXF en un entorno 1.6.

Otros consejos

Hay varias sugerencias y explicaciones en el respectivo informe de error y en otros lugares (por ejemplo aquí y aquí ). No sé qué tan bien funcionan.

La información sobre este tema se puede encontrar en JBoss oficial de instalación y guía de inicio: http://docs.jboss.org/jbossas/docs/Installation_And_Getting_Started_Guide /5/html/Installation_Alternatives.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top