我正在嘗試讀取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應用程序。 –