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ą?

questionAnswers(3)

yourAnswerToTheQuestion