我正在尝试读取Tomcat中的属性值。我的计划是使用System.getProperty("LOGPATH")
访问该值,其中LOGPATH
是我的财产的名称。但是我没有找到在Tomcat中设置系统属性值的方法。Tomcat JNDI查找问题
有没有什么办法可以在Tomcat中设置System属性?
由于我没有得到有关设置系统属性的任何文档,我想使用JNDI访问该值。所以,我在server.xml
文件中添加以下条目
<Environment name="LOGPATH" type="java.lang.String" value="c:/temp" />
<GlobalNamingResources>
后。
我用于查找的JNDI的代码是
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env/");
String path = (String) envCtx.lookup("LOGPATH");
当我执行上面的代码,我得到了下面的错误消息。
javax.servlet.ServletException: Name LOGPATH is not bound in this Context
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
然后我说在我的web.xml
<resource-env-ref>
<resource-env-ref-name>LOGPATH</resource-env-ref-name>
<resource-env-ref-type>java.lang.String</resource-env-ref-type>
</resource-env-ref>
的条目现在的错误信息更改为
javax.naming.NamingException: Cannot create resource instance
org.apache.naming.factory.ResourceEnvFactory.getObjectInstance(ResourceEnvFactory.java:99)
什么我现在做错了吗?感谢您的帮助。
我不想这样做,因为它会迫使我在每次部署时为每个环境更改/编辑Web应用程序。 –