6
我試圖將基於Jax-WS的Web服務遷移到JBoss 7,但應用程序(部署爲war)在啓動時失敗以啓動監聽器。錯誤listenerStart - JaxWS - JBoss as 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 (...)
到錯誤消息引用失敗,由於先前的錯誤但是沒有錯誤打印在日誌中。有問題的應用包JAX-WS-RT這樣的:
<dependency>
<groupId>sun-jaxws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.1.7</version>
</dependency>
如果我改變了JAX-WS-RT的範圍,以提供這會導致一個很好的ClassNotFound的預期。
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 (…)
servlet在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>
我無法理解什麼是錯。我如何解決這個問題並部署應用程序?
思考:
- 我缺少的依賴?
- 我可以重新配置戰爭以使用Jboss內部JaxWS而不進行重大重構嗎?
- 如果我不能使用jboss內部JaxWS版本,我可以強制Jboss使用我捆綁在戰爭中的Jaxws版本嗎? (如果是這樣,那麼JaxWs需要什麼依賴關係?)