Я пытался прочитать значение свойства в Tomcat. Мой план состоял в том, чтобы получить доступ к значению, используя System.getProperty("LOGPATH")
, где LOGPATH
- это название моей собственности. Однако я не нашел способа установить значение свойства системы в Tomcat.
Есть ли способ установить свойство System в Tomcat?
Поскольку я не получил никакой документации по настройке свойства System, я подумал о доступе к значению с помощью JNDI. Поэтому я добавил следующую запись
<Environment name="LOGPATH" type="java.lang.String" value="c:/temp" />
после
<GlobalNamingResources>
в server.xml
файле.
Код, который я использовал для поиска 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)
Что я сейчас делаю не так? Спасибо за помощь.