0

如何让我的 Web 服务客户端(在 Web 应用程序中)使用 web.xml 文件来获取 wsdl 的源代码?

我正在使用 netbeans 6.9 和 tomcat,到目前为止,我们的 Web 应用程序中有一个带有 wsdl url 的 Web 服务引用。

4

2 回答 2

0

我不建议将此类资源存储在 中web.xml,因为它们将来可以更改。例如,如果部署的 Web 服务http://theaddress:8080/webapp?wsdl将被迁移到其他一些服务器并且 URL 将发生变化。然后你必须修改你的应用程序,在这种情况下它不是很有效的方法。

我建议JNDI像这样存储资源。在 中阅读如何执行此操作Tomcat设置起来并不难。

另一种方法是使用文件,.properties但我宁愿选择JNDI..properties

于 2012-10-26T09:07:31.427 回答
0

如果它必须是 web.xml,您可以配置一个上下文参数(与其他任何参数一样),例如:

   <context-param>
    <param-name>webservice.Location</param-name>
    <param-value>http://theaddress:8080/webapp?wsdl</param-value>
   </context-param>

如上所述配置后(Webservice.Location)是任意变量名称,您可以根据需要进行更改。如果您没有使用任何附加的 Web 应用程序层,例如 JSF 或 Struts 等,您现在可以HttpServletRequest像在 servlet 中那样引用这个变量(来自对象)

        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 中处理其他配置,这有点冒险。这也是应用程序配置管理的最佳实践。这里有一个关于属性文件的小教程

于 2012-10-26T05:34:18.037 回答