2012-05-03 6 views
12

Postępowałem zgodnie z instrukcjami here, aby poprawnie zainstalować najnowsze wydanie JAX-WS (2.2.6) na moim JDK v1.6.0_31 (tj. Skopiować jaxws-api.jar i jaxb -api.jar z wydania JAX-WS do mojego katalogu $ {JAVA_HOME}/lib/endorsed). Od wewnątrz Eclipse mogę uruchomić wsimport ant zadanie prawidłowo i wygenerowany kod daje znaczek wersji w komentarzach:Instalacja najnowszego JAX-WS na JDK 6

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

Problem mam jest, że wygenerowany kod klienta pokazuje błędy, które prowadzą mnie wierzyć, że kompilator jest wciąż przy JAX-WS w wersji 2.1:

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

i

The attribute required is undefined for the annotation type XmlElementRef 

Próbowałem wyraźnie zachodzące -Djava.endorsed.dir Arg przy uruchamianiu Eclip se i ja również próbowałem ustawić ten arg w Eclipse-> Preferencje-> Java-> Zainstalowane JREs, ale żadna z nich nie pomogła. Moja ścieżka zadań dla mrówek wsimport ant jest zdefiniowana tak, aby patrzeć na słoiki JAX-WS 2.2.6. Próbowałem także ustawić ścieżkę kompilacji projektu, aby pobrać słoiki 2.2.6. Nic nie działa. Czy czegoś brakuje?

+0

Czy jesteś pewien, że binarny plik java, na którym działa wsimport, należy do zmodyfikowanego katalogu JAVA_HOME? –

Odpowiedz

6

Nie wiem, dlaczego nie podnosi go z przodu, popierał lib (inne niż może poparty katalog, w którym umieściłeś swoje biblioteki dla innego JRE/JDK, którego używa zaćmienie?), Ale w odniesieniu do ostatniej rzeczy, której próbowałeś .. dodanie słoików bezpośrednio do ścieżki budowania .... to zadziała, jeśli zamówisz wpisy ścieżki budowania tak, że twoje słoiki JAX-WS znajdują się powyżej wpisu JDK.

1

Utworzono kod wymagający JAX-WS 2.1. Wersja 2.0 nie ma klasy WebServiceFeature, a jako wynik również nie konstruktora w Service z takim typem argumentu.

Jak widać, w Java SE 6 nie ma takiego konstruktora: javax.xml.ws.Service SE 6, ale na przykład w Java EE 6 znajduje się: javax.xml.ws.Service EE 6

enter image description here

0

można wykorzystywać polecenia do generowania poniżej odcinki wsdl2java -p -client -frontend jaxws21

1

Jeśli możliwym rozwiązaniem mogłoby zastąpić jdk1.6 o wyższej jdk (albo 1,7 albo 1,8) .