Implementacja JAX-WS dołączona do Java?
Mam aplikację usługi WWW JAX-WS, która wdraża się jako plik WAR dla Tomcat 7. Korzysta z najnowszej wersji bibliotek Metro, które włączam do pliku WAR i działa poprawnie.
Próbuję uprościć pakiet wdrażania. Rozumiem, że Sun JDK zawiera kopię Metro (patrzto pytanie iten na przykład), ale z jakiegoś powodu obowiązkowe jest zastąpienie tej kopii metra pobraną z witryny Glassfish. Staram się zrozumieć, czy jest to możliwe dzięki tylko Tomcatowi i implementacji metra dołączonej do JDK, a jeśli nie, dlaczego nie.
Zawartość WAR jest następująca (pliki klas zostały usunięte):
META-INF/MANIFEST.MF
WEB-INF/classes/
WEB-INF/classes/com/[et cetera]
WEB-INF/ibm-web-ext.xml
WEB-INF/lib/
WEB-INF/lib/stax-api.jar
WEB-INF/lib/webservices-api.jar
WEB-INF/lib/webservices-extra-api.jar
WEB-INF/lib/webservices-extra.jar
WEB-INF/lib/webservices-rt.jar
WEB-INF/lib/webservices-tools.jar
WEB-INF/sun-jaxws.xml
WEB-INF/web.xml
wsdl/
wsdl/MyService.wsdl
web.xml
zawiera częściowo:
<servlet>
<servlet-name>MyService</servlet-name>
<servlet-class>
com.sun.xml.ws.transport.http.servlet.WSServlet
</servlet-class>
</servlet>
Gdy usuwam słoiki webservices- * - słoiki Metro - z WAR, usługa sieciowa kończy się niepowodzeniem z błędem „Wrapper nie może znaleźć klasy serwletu com.sun.xml.ws.transport.http.servlet.WSServlet lub klasy to zależy od". Nie jest to zaskakujące, ponieważ nie mogę znaleźć tej klasy w słoikach z Java 7 SE.
Co to znaczy powiedzieć, że Java 7 pochodzi z Metro, jeśli musisz pobrać inną kopię Metro, aby coś takiego działało? Czy możliwe jest uruchomienie usługi WWW JAX-WS w Tomcat przy użyciu tylko słoików dostarczanych z Javą?