Java,NetBean:是否可以从Web Service方法访问web.xml上下文参数?
我是Java新手,请原谅我la脚的问题:)
我正在尝试在Java NetBeans 6.1中构建Web服务,但是在配置参数(例如.net中的.settings)方面遇到了一些麻烦。
在Java Web服务中保存和访问此类设置的正确方法是什么。
有没有一种方法可以在Web方法中从web.xml读取上下文参数?
如果没有,还有什么替代方法来存储配置变量(如路径名)?
谢谢
解决方案
如果使用的是servlet,则可以在web.xml中配置参数:
<servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> <init-param> <param-name>fork</param-name> <param-value>false</param-value> </init-param> </servlet>
这些属性将在ServletConfig对象中传递给Servlet的" init"方法。
另一种方法是使用以下命令读取系统的环境变量
System.getProperty(String name);
但这不建议用于小型程序和测试。
如果要使用" .properties"文件,则还可以使用Properties API。
http://java.sun.com/javase/6/docs/api/java/util/Properties.html
最后,我相信在开发现代Web服务应用程序时使用JNDI查找配置非常普遍,Netbeans和应用程序容器对此提供了很好的支持。去谷歌上查询。
Is there a way to read context parameters from web.xml in a web method?
不,使用开箱即用的方法不容易做到这一点。 Web服务系统(JAX-WS)对Servlet引擎(Tomcat)的了解很少。它们被设计为隔离的。
如果要使用上下文参数,则Web服务类将需要实现ServletContextListener并在初始化参数中检索所需的参数(或者保存上下文以供以后使用)。由于Servlet引擎和JAX-WS各自具有不同的对象实例,因此我们需要将值保存到静态成员。
正如Lars所提到的,Properties API或者JNDI是Java附带的最佳选择,并且是检索选项的相当知名的方法。使用Classloader.getResource()在Web上下文中检索属性。