如何获取我的Web服务客户端(在Web应用程序中)使用web.xml文件获取wsdl的源代码?
我正在使用netbeans 6.9和tomcat,到目前为止,我们在Web应用程序中使用了wsdl的url进行了Web服务引用。
答案 0 :(得分: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等,您现在可以在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
答案 1 :(得分:0)
我不建议将这些资源存储在web.xml
中,因为将来可以更改这些资源。对于例如如果部署在http://theaddress:8080/webapp?wsdl
中的Web服务将迁移到其他服务器,则URL将更改。然后你必须修改你的应用程序,在这种情况下它不是非常有效的方式。
我建议JNDI存储这样的资源。阅读Tomcat
中的how to do this,设置起来并不难。
另一种方法是使用.properties
个文件,但我宁愿选择JNDI
而不是.properties
。