Java,NetBean:是否可以从Web Service方法访问web.xml上下文参数?

时间:2020-03-06 14:38:52  来源:igfitidea点击:

我是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上下文中检索属性。