10

概要:

現在、複数のモジュールを含む Web アプリケーションがあります。以下の技術スタックを使用しています

  1. JAX-WS
  2. Spring フレームワーク (Spring MVC を除く)
  3. JSF
  4. 休止状態

アプリケーション サーバー: IBM Websphere 7.0 (本番)、Apache Tomcat 7.0.X (開発) クラスを Web サービスとしてマークするために JAX-WS アノテーションを使用しています。これ以外に、データ オブジェクトで JAXB アノテーションを使用していません。 ws ランタイムのこのタスク。

問題文:

アプリケーションを Apache Tomcat にデプロイすると、Web サービスは AS で公開されません。解決策として、Spring コンテキスト ファイルに「org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter」プロパティを追加すると、Web サービスが完全に機能し始めます。しかし、アプリケーションを WAS にデプロイすると、前述のプロパティを設定せずに Web サービスが公開されます。Web サービスに最初のリクエストを行うと、応答が遅くなります。この問題の R&D 中に、次のことがわかりました。

  1. AXIS2 Web サービス エンジンを使用する IBM
  2. JAXB 実装className_used_in_web_service_method$JaxbAccessorM_getFieldName_setFieldName_java_util_Set from: <unknown>は、階層内のすべてのクラスと同様にクラスをロードします。これは初回のみ発生します。アプリケーションの起動時にこれらを読み込もうとしましたが、成功しませんでした。誰でもこの問題に取り組むのを手伝ってくれませんか?
4

3 に答える 3

0

独自の実装を作成できますServletContextListener

例えば:

package kernel.flowcontrol;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class WsLifecycleListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {

    // some init work ...

    }

    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {}
}

そしてそれをに追加しますweb.xml

<listener>
    <listener-class>kernel.flowcontrol.WsLifecycleListener</listener-class>
</listener>
于 2013-11-28T13:56:45.193 に答える
0

web.xml で AxisServlet load-on-startup を試してください

于 2013-01-07T07:23:19.547 に答える
0

SimpleHttpServerJaxWsServiceExporter代わりに使ってみましたSimpleJaxWsServiceExporterか?

SimpleHttpServerJaxWsServiceExporterエンドポイントの設定が完了したらすぐに Web サービスを起動するようです。

于 2013-03-06T19:57:00.883 に答える