javac nicht finden können, das symbol Konstruktor Service
Ich bin in den Prozess des Lernens, CXF mit Hilfe dieser Apache CXF Web Service Development Buch, aber, leider, einer der Buch-Beispiel-Projekte werden nicht kompiliert werden!
Den code in Frage in Kapitel 3 die contractfirst
und es ist nicht ein typo-problem, weil ich bin mit dem source-code von verbatim als heruntergeladen das Buch auf der support-Website.
Den 3 Kompilierungsfehler Punkt tatsächlich auf ein einziges problem:
Chapter3\contractfirst\src\demo\order\OrderProcessService.java:52: cannot find symbol
symbol: constructor Service(java.net.URL,javax.xml.namespace.QName,javax.xml.ws.WebServiceFeature[])
location: class javax.xml.ws.Service
super(WSDL_LOCATION, SERVICE, features);
^
In der Datei OrderProcessService.java.
Ersten reSuche deutet darauf hin, dass dies möglicherweise ein JAX-WS 2.2 vs. 2.1 Problem, aber ich habe keine Ahnung, wie man das ANT-basierte Zusammenstellung Umgebung "Billigen" JAX-WS 2.2.
Ich habe versucht, indem Sie eine jaxws-api.jar
im %JAVA_HOME%\lib\endorsed
und ich habe versucht, das hinzufügen, dass jar in das Projekt Bibliotheken-Liste, aber keiner schien zu helfen.
Ich bin nicht mit Maven, so kann ich nicht einmal eine Liste, die es als eine Abhängigkeit und hoffen, dass dies auf Magische Weise gelöst.
Jede Idee, wie dieses problem zu lösen? Also, dass kann ich diesem sehr einfachen Projekt zu bauen?
- Welche Java-version verwenden Sie, um bauen Sie Ihre Proben?
- 1.6
- Der source-code, den Sie erwähnt baut gerade fein für mich mit Java 1.6, Ant 1.8.2, Mac OS X 10.7.5. Können Sie bestätigen, dass Ihre system-Statistiken, und dass Sie nicht geändert werden, die heruntergeladen-source-Projekt in irgendeiner Weise?
- Die CXF-version ist Kritischer, als stillschweigend von stackoverflow.com/questions/10448329/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihrer Beschreibung klingt ähnlich wie das problem beschrieben in diesem Beitrag.
Zu bekommen um dieses Problem zu beheben, kopieren Sie einfach
jaxb-api.jar
,jaxws-api.jar
zum JDK, die JRE ist/lib/endorsed
Hinweis, dass "gutheißen" bedeutet, dass Sie die relevanten JAR-Dateien (jaxb-api.jar, jaxws-api.jar in diesem Falle) in
%JAVA_HOME%\jre\lib\endorsed
(Hinweis: diejre
im Pfad). Tun nicht erstellen der gebilligt - Verzeichnis direkt unter dem JDK ist lib Verzeichnis.... oder wenn Sie es vorziehen nicht zu berühren, das JDK zu installieren, verwenden Sie diese env vars ist mit wsimport und wsgen (wo JAXWS_HOME Punkte zu JAX-WS 2.1 installation):
oder..., Wenn Sie verwenden die ant-tasks, die Sie übergeben können
-Djava.endorsed.dirs=%JAXWS_HOME%/lib
als jvmarg beim Aufruf von wsimport und wsgen ant-tasks (damit dies funktioniert, müssen Sie einstellen, fork="true" - Attribut von wsimport und wsgen ant-tasks).Kredit geht an Rama Pulavarthi.
%JAVA_HOME%\jre\lib
(im Vergleich zu was ich getan habe, das war: %JAVA_HOME%\lib) war es. Danke.Billigung der 2.2 version des jaxws-api-jar-sollte funktionieren. Man könnte auch passieren das "-fe jaxws21" - flag, um die CXF wsdl2java-Befehl, um es zu generieren 2.1 kompatibel-code statt.
Hinzufügen webservices-api-2.2.jar allein in %JAVA_HOME%\jre\lib\endorsed hat das Problem behoben bei mir.