Web サービス クライアント (Web アプリケーション内) で web.xml ファイルを使用して wsdl のソースを取得するにはどうすればよいですか?
私は netbeans 6.9 と tomcat を使用しています。これまでのところ、Web アプリケーションには wsdl の URL を使用した Web サービス参照があります。
Web サービス クライアント (Web アプリケーション内) で web.xml ファイルを使用して wsdl のソースを取得するにはどうすればよいですか?
私は netbeans 6.9 と tomcat を使用しています。これまでのところ、Web アプリケーションには wsdl の URL を使用した Web サービス参照があります。
web.xml
このようなリソースは将来変更される可能性があるため、に保存することはお勧めしません。たとえば、でデプロイされているWebサービスがhttp://theaddress:8080/webapp?wsdl
他のサーバーに移行され、URLが変更される場合です。次に、アプリケーションを変更する必要があります。その場合、それはあまり効率的な方法ではありません。
このようなリソースを格納するようにJNDIに提案します。でこれを行う方法を読んでくださいTomcat
。設定は難しくありません。
別の方法はファイルを使用すること.properties
ですが、私はむしろを選択JNDI
したいと思います.properties
。
web.xml でなければならない場合は、次のようなコンテキスト パラメータを (他のものと同様に) 構成できます。
<context-param>
<param-name>webservice.Location</param-name>
<param-value>http://theaddress:8080/webapp?wsdl</param-value>
</context-param>
上記のように構成した後 ( Webservice.Location
) は、必要に応じて変更できる任意の変数名です。JSF や Struts などのアドオン Web アプリケーション レイヤーを使用していない場合は、この変数を (HttpServletRequest
オブジェクトから) サーブレットのように参照できるようになりました。
String webServiceAddr = request.getServletContext().getInitParameter("webservice.Location"); //getServletContext() will give you an instance to a ServletContext object which basically is a representation of your entire web application deployment environment including configuration files.
変数webServiceAddr
には、構成された値が含まれます
そのような構成を標準.properties
ファイルに外部化することをお勧めしますが、それをセットアップしようとしているときにデプロイヤーが web.xml の他の構成をいじくり回すのは少し危険です。また、アプリケーションの構成管理のベスト プラクティスでもあります。プロパティファイルに関する小さなチュートリアルはこちら