Domanda

Questa è una continuazione della domanda qui: JBoss - non applicazione deve essere compilato sotto lo stesso JDK come JBOSS è in esecuzione in?

E 'diverso abbastanza però che ha richiesto una nuova domanda.

Sto cercando di utilizzare JDK6 per eseguire JBOSS 5.1, e ho scaricato la versione JDK6 di JBoss 5.1. Questo funziona bene e la mia applicazione EAR distribuisce bene. Tuttavia, quando ho voglia di correre un client di servizi web con codice come questo:

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());
}

ottengo la seguente eccezione:

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)

Ora, qui è la parte veramente interessante . Se cambio il JDK che il mio codice di cui sopra è in esecuzione in da JDK6 al JDK5, l'eccezione di cui sopra se ne va! E 'davvero strano.

L'unico modo che ho trovato per il codice di cui sopra per l'esecuzione in JDK6 è stato quello di prendere il / lib cartella JBOSS_HOME / approvato e copiarlo JDK6_HOME / lib. Questo sembra che non dovrebbe essere necessario, ma lo è.

C'è un altro modo per fare questo lavoro diverso utilizzando la soluzione che ho appena descritto?

È stato utile?

Soluzione

appare meno come se è stato eseguito alla presenza di JAX-WS come una caratteristica ufficiale del JDK 1.6. Non copiare le cose a 'lib', copiarli in una directory 'approvato' (quello elencato nella java.endorsed.dirs). Questo potrebbe essere utile.

Se si dispone di un up-to-date 1.6, è possibile aggirare il problema allo stesso modo che Apache CXF fa. Vedere la documentazione per informazioni su come utilizzare CXF in un ambiente 1.6.

Altri suggerimenti

Ci sono vari suggerimenti e spiegazioni nella rispettiva bug report e altrove (ad esempio qui e qui ). Non so come funzionano.

Informazioni su questo problema si può trovare in Installazione ufficiale JBoss E Guida introduttiva: http://docs.jboss.org/jbossas/docs/Installation_And_Getting_Started_Guide /5/html/Installation_Alternatives.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top