【问题标题】:webservice source in web.xmlweb.xml 中的 web 服务源
【发布时间】:2012-10-26 02:46:05
【问题描述】:

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

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

【问题讨论】:

    标签: web-services tomcat netbeans web.xml


    【解决方案1】:

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

    我建议JNDI 存储这样的资源。阅读Tomcat中的how to do this,设置起来并不难。

    替代方法是使用.properties 文件,但我宁愿选择JNDI 而不是.properties

    【讨论】:

      【解决方案2】:

      如果必须是 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 等,您现在可以像在 servlet 中那样引用这个变量(来自 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 中处理其他配置有点冒险。这也是应用程序配置管理的最佳实践。属性文件小教程here

      【讨论】:

      • 我必须在web.xml中做,但是不知道如何使用你发布的内容,我已经理解它是正确的方法。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      • 2019-06-29
      • 2021-08-05
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多