2012-07-13 18 views
6

Próbuję przenieść usługę WWW opartą na Jax-WS do JBoss jako 7, ale aplikacja (wdrożona jako wojna) nie uruchamia odbiornika przy uruchomieniu.Błąd listenerStart - JaxWS - JBoss jako 7

ERROR [org.apache.catalina.core.StandardContext] (MSC service thread 1-14) Error listenerStart 
ERROR [org.apache.catalina.core.StandardContext] (MSC service thread 1-14) Context [/abc] startup failed due to previous errors 
ERROR [org.jboss.msc.service.fail] (MSC service thread 1-14) MSC000001: Failed to start service jboss.web.deployment.default-host (...) 

Błąd odniesienia wiadomość do powiodło się z powodu wcześniejszych błędów jednak żadnych błędów drukowanych w dzienniku. Wniosek, o którym mowa wiązki JAX-WS-RT tak:

<dependency> 
     <groupId>sun-jaxws</groupId> 
     <artifactId>jaxws-rt</artifactId> 
     <version>2.1.7</version> 
    </dependency> 

Gdybym zmienić zakres JAX-WS-RT, które należy dostarczyć powoduje to piękny ClassNotFound jak oczekiwano.

WARN [org.jboss.as.ee] (MSC service thread 1-13) JBAS011006: Not installing optional component com.sun.xml.ws.transport.http.servlet.WSServletContextListener due to exception: java.lang.ClassNotFoundException: com.sun.xml.ws.transport.http.servlet.WSServletContextListener (…) 

Serwlet jest zdefiniowany w ten sposób w pliku web.xml.

<listener> 
    <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class> 
</listener> 
<servlet> 
    <description>JAX-WS endpoint for data service</description> 
    <display-name>abc</display-name> 
    <servlet-name>abc</servlet-name> 
    <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>abc</servlet-name> 
    <url-pattern>/services/abc</url-pattern> 
</servlet-mapping> 

nie mogę zrozumieć, co jest nie tak. Jak rozwiązać ten problem i wdrożyć aplikację?

Myśli:

  1. jestem brakuje zależność?
  2. Czy mogę przekonfigurować wojnę, aby korzystać z wewnętrznego Jaxsa Jboss bez ważnego refaktoryzacji?
  3. Jeśli nie mogę użyć jboss wewnętrznej wersji JaxWS, mogę zmusić Jbossa do użycia wersji Jaxws, którą pakuję w wojnę? (Jeśli tak, jakie zależności są mi potrzebne w przypadku JaxWs?)

Odpowiedz

7

z JBoss AS7 (Java EE6), w rzeczywistości nie trzeba wstawiać pliku WSServlet do pliku web.xml jako klasy serwletu. Ale zamiast tego masz tam nazwa klasy do klasy, z dopiskiem @Webservice

Wszystko, co chcesz zrobić, to upewnić się, że w was konfiguracja JBoss (np standalone.xml) masz rozszerzenie dla webservices włączona:

<extensions> 
    [...] 
    <extension module="org.jboss.as.webservices"/> 
</extensions>