2012-05-03 12 views
12

Ho seguito le istruzioni here per installare correttamente l'ultima versione di JAX-WS (2.2.6) sulla parte superiore del mio JDK v1.6.0_31 (cioè copiando jaxws-api.jar e jaxb -api.jar dalla versione JAX-WS nella mia directory $ {JAVA_HOME}/lib/endorsed). Da dentro Eclipse posso correre il compito formica wsimport correttamente e il codice generato sta dando un timbro di versione nei commenti di:Installazione dell'ultimo JAX-WS su JDK 6

/** 
* This class was generated by the JAX-WS RI. 
* JAX-WS RI 2.2.6b21 
* Generated source version: 2.2 
* 
*/ 

Il problema che sto avendo è che il codice client generato sta mostrando errori che mi portano a credere che il compilatore è ancora utilizzando JAX-WS versione 2.1:

The constructor Service(URL, QName, WebServiceFeature[]) is undefined 

e

The attribute required is undefined for the annotation type XmlElementRef 

ho provato a impostare in modo esplicito l'arg -Djava.endorsed.dir all'avvio ECLIP anche io ho provato a impostare questo argomento in Eclipse-> Preferences-> Java-> InstalledJREs ma nessuno di questi ha aiutato. Il mio classpath del task form ant wsimport è definito per esaminare i jar JAX-WS 2.2.6. Ho anche provato a impostare il percorso del mio progetto per inserire i jar 2.2.6. Niente sembra funzionare. Mi sto perdendo qualcosa?

+0

Sei sicuro che il file binario java su cui si esegue wsimport appartiene a JAVA_HOME che hai modificato? –

risposta

6

Non so perché non lo sta raccogliendo in anticipo ha approvato la lib (a parte forse la dir avallata che hai messo le tue librerie è per un JRE/JDK diverso che l'eclissi sta usando?), Ma riguardo l'ultima cosa che hai provato .. aggiungendo i vasi direttamente al percorso di compilazione .... funzionerà se ordinate le voci del percorso di build in modo tale che i vostri jar JAX-WS siano sopra la voce JDK.

1

Hai prodotto codice che richiede JAX-WS 2.1. La versione 2.0 non ha una classe WebServiceFeature e, come risultato, non è un costruttore in Service con un tipo di argomento di questo tipo.

Come si vede, in Java SE 6 non v'è un costruttore come: javax.xml.ws.Service SE 6, ma per esempio in Java EE 6 c'è: javax.xml.ws.Service EE 6

enter image description here

0

È possibile utilizzare il seguente comando per generare gli stub WSDL2Java -p -client -frontend jaxws21

1

Se possibile una soluzione potrebbe sostituire jdk1.6 con un JDK più alto (o 1.7 o 1.8) .

Problemi correlati