У меня есть приложение GWT RPC, развернутое в Tomcat 8, и я хочу, чтобы код сервера загружал некоторые данные конфигурации (имя хоста и порт на другую службу). В противном случае сервис работает нормально. Я прочитал несколько предложений, но я не могу заставить его работать.GWT - Загрузите элемент конфигурации из контекста.xml
Отрывок из моего Tomcat context.xml (я знаю, что context.xml требует перезапустить tomcat при изменении - это нормально).
<Context reloadable="true">
<Parameter name="config_hostname" value="192.168.2.199" override="false"/>
<Parameter name="config_port" value="8888" override="false"/>
В моей реализации обслуживания у меня есть метод setup(). В этом случае я пытаюсь получить доступ к конфигурации:
String hostname = getServletConfig().getInitParameter("config_hostname");
String port = getServletConfig().getInitParameter("config_port");
Однако это не работает. Может ли кто-нибудь поставить меня на правильный путь?
----------------------- обновление -------------------
Я попытался положить данные в web.xml, как этот
<web-app>
<context-param>
<param-name>hostname</param-name>
<param-value>192.168.2.199</param-value>
</context-param>
</web-app>
и использовать его, как это (как работает!):
String h1=getServletConfig().getServletContext().getInitParameter("hostname");
String h2=getServletContext().getInitParameter("hostname");
однако я не хочу, чтобы положить его в Интернете. xml, так как я хочу иметь разные настройки для каждого развертывания. У Tomcat есть conf/server.xml och conf/context.xml, и я пробовал их, но тогда я получил NULL в вышеуказанных вызовах.
Каков наилучший способ хранения серверных конфигураций? Пожалуйста, уточните в своем ответе.
Я прочитал doumentation на http://tomcat.apache.org/tomcat-8.0-doc/jndi-resources-howto.html, но я, очевидно, не понимаю.
У вас есть этот код в 'ServletContextListener' или в' RemoteServiceServlet'? Метод ServletContextListener # contextInitialized' вызывается один раз при запуске сервера, где я обычно добавляю такой код. –
У меня есть метод в моем классе с этим определением: «Открытый класс MyService расширяет RemoteServiceServlet». –
Вы пытались поместить параметры init в файл web.xml вместо context.xml? У меня есть следующий элемент в моем файле web.xml (это дочерний элемент «веб-приложения»): ' ConfigFilename cfg/FosterAPet.cfg param-value> context -param> ' –