У меня есть webservice, работающий на tomcat (и работающий). Я хотел бы извлечь URL-адрес конечной точки в файл за пределами войны, чтобы его можно было изменить без необходимости переустановки войны. Я работаю локально с Tomcat 6 автономно в Windows XP.Tomcat не распознает контекст в веб-сервисе
Моя мысль заключалась в том, чтобы иметь его в контексте, либо как параметр контекста, либо как переменную среды.
Я не был уверен, что было лучше, и поскольку я не могу понять, что Контекст признан, я понятия не имею, что будет работать. Итак, мой первый вопрос, какую из приведенных ниже записей я должен использовать (если есть)?
<Context path="/myapp" docBase="myapp">
<Environment name="webserviceURI" type="java.lang.String" override="true" value="endpointURLredacted"/>
<context-parameter>
<name>uri</name>
<value>endpointURLredacted</value>
</context-parameter>
</Context>
Предполагая, что линия окружающей среды является правильным, мой код, чтобы получить это:
InitialContext ic = new InitialContext();
endpoint = (String)ic.lookup("webserviceURI");
Однако ....
Я попытался добавить это в файл context.xml в META -INF, и у меня создалось впечатление, что когда я развертываю войну, процитирую ответ на другой вопрос здесь: «Когда вы развертываете WAR, фрагмент контекста (META-INF/context.xml) копируется в conf/Catalina/[host] ". Ну, этого не происходит. Я действительно не хочу этого делать, потому что я хочу, чтобы контекст существовал полностью отдельно от войны, но это был тест, чтобы понять, могу ли я даже дойти до этого. Потерпеть неудачу.
Поэтому я попытался добавить контекст xml (переименованный в myapp.xml) в эту папку (должен был создать его сначала) вручную, но я все еще не думаю, что файл читается.
Когда я запустил приложение, я получаю сообщение об ошибке «javax.naming.NameNotFoundException: Имя webserviceURI не связано в этом контексте».
Я попытался распечатывания среду исходного контекста в:
Context: {java.naming.factory.initial=org.apache.naming.java.javaURLContextFactory,java.naming.factory.url.pkgs=org.apache.naming}
Так что я не думаю, что файл контекста становится читать, независимо от того, где я положил его.
Это не сервлет (возможно, это должно быть?), Если это имеет значение.