我是java的新手,所以请原谅我那些愚蠢的问题:)
我正在尝试在JavaWeb6.1中构建一个NetBeans服务,但是我在配置参数(比如.net中的.settings )方面遇到了一些问题。
在java web服务中保存和访问这样的设置的正确方式是什么。
有没有办法在web方法中从web.xml中读取上下文参数?
如果不是,那么存储路径名等配置变量的替代方案是什么?
谢谢
发布于 2008-09-24 15:04:35
有没有办法在web方法中从web.xml中读取上下文参数?
不,使用开箱即用的方式很难做到这一点。Web服务系统(JAX-WS)对Servlet引擎(Tomcat)知之甚少。它们被设计成隔离的。
如果您想要使用上下文参数,您的web服务类将需要实现ServletContextListener并在初始化参数中检索所需的参数(或者保存上下文以供以后使用)。由于Servlet引擎和JAX-WS将分别具有不同的对象实例,因此需要将值保存到静态成员。
正如Lars提到的,Properties API或JNDI是您的最佳选择,因为它们包含在Java中,并且是相当著名的检索选项的方法。使用Classloader.getResource()检索web上下文中的属性。
发布于 2008-09-24 08:03:36
如果您使用的是servlets,则可以在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和应用程序容器对此有很好的支持。用谷歌搜索一下。
发布于 2011-10-12 13:50:52
MessageContext ctx = MessageContext.getCurrentThreadsContext();
Servlet wsServlet = (Servlet) ctx.getProperty(HTTPConstants.MC_HTTP_SERVLET);
ServletConfig wsServletConfig = wsServlet.getServletConfig();
ServletContext wsContext = wsServletConfig.getServletContext(); https://stackoverflow.com/questions/125878
复制相似问题