0

私はコードを作成しませんでした、私はただ問題を見つけるのを手伝うように頼まれています。私はSOAPについて何も知りません。

WSDLから生成されたWebServiceは、古いGlassfishv2で実行されています。

問題ありません。サービスはportNameエンドポイントとserviceNameエンドポイントの両方で公開されています。

次に、そのアプリケーションはGlassfishv3に移動されます。これで、portNameエンドポイントのみにアクセスできます。serviceNameはそうではありません。

誰かがこれを修正するための5-6ステップガイドを持っていますか?私は、別の50ページのOracleドキュメントを調べて、問題の修正に役立つことを約束しているわけではありませんが、...そうではありません。私はネットをくぐり抜けて、あまりにも長い間無駄になっていて、率直に言って私の知恵の終わりにいます。

4

1 に答える 1

1

SOAPクラスの実装で、wsdlLocationを@WebServiceアノテーションに追加します。sun-web.xmlとsun-jaxws.xmlを削除し、web.xmlからリスナーcom.sun.xml.ws.transport.http.servlet.WSServletContextListenerを削除します。最後に、基本的なglassfish-web.xmlを追加します

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
  <context-root>/</context-root>
  <class-loader delegate="true"/>
  <jsp-config>
    <property name="keepgenerated" value="true">
      <description>Keep a copy of the generated servlet class' java code.</description>
    </property>
  </jsp-config>
</glassfish-web-app>

その後、サーバーはサービス自体を見つけ、WebServiceアノテーションが指定する場所に配置します。

于 2013-03-21T15:52:56.750 に答える