7

Jax-WSベースのWebサービスを7としてJBossに移行しようとしていますが、アプリケーション(戦争としてデプロイされた)が起動時にリスナーを起動できません。

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 (…)

サーブレットは、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>

何が悪いのか理解できません。これを解決してアプリケーションをデプロイするにはどうすればよいですか?

考え:

  1. 依存関係がありませんか?
  2. 大幅なリファクタリングなしでJboss内部JaxWSを使用するように戦争を再構成できますか?
  3. jbossの内部JaxWSバージョンを使用できない場合、戦争でバンドルしたバージョンのJaxwsをJbossに使用させることはできますか?(もしそうなら、JaxWにはどのような依存関係が必要ですか?)
4

1 に答える 1

8

JBoss AS7(Java EE6)を使用すると、実際にはWSServletをservlet-classとしてweb.xmlに配置する必要はありません。ただし、代わりに、@Webserviceで注釈が付けられたクラスのクラス名があります。

必要なのは、JBoss構成(standalone.xmlなど)でWebサービスの拡張機能が有効になっていることを確認することだけです。

<extensions>
   [...]
   <extension module="org.jboss.as.webservices"/>
</extensions>
于 2012-07-13T12:13:17.323 に答える