Я пытаюсь найти способ явно указать контекстный путь веб-приложения, развернутого в Glassfish 3.1.2.2, но пока мне не повезло. Может ли кто-нибудь дать руководство по этому поводу? Предыстория этого ниже:
У меня есть веб-приложение, состоящее из двух отдельных проектов Netbeans (7.0 ). Первый представляет собой веб-сервис и называется FooWS. Второе — это пользовательское веб-приложение, которое использует веб-сервис FooWS. Он называется FooApp.
Я недавно обновил стеклянную рыбу до 3.1.2.2 в надежде решить какую-то другую проблему, и теперь, когда я развертываю приложение FooWS, оно развертывается успешно, но с контекстным путем /web, а не /FooWS. Это не то, о чем я бы особенно заботился, за исключением того, что когда я пытаюсь развернуть FooApp, Glassfish также пытается развернуть это в /web, что приводит к следующей ошибке:
СЕРЬЕЗНАЯ :Исключение при загрузке приложения :java.lang.Exception :WEB0113 :Виртуальный сервер [server] уже имеет веб-модуль [FooWS], загруженный в [/web]; поэтому веб-модуль [FooApp] не может быть загружен по этому пути контекста на этом виртуальном сервере.
Web.xml для FooApp выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<context-param>
<param-name>defaultWebRootId</param-name>
<param-value>2631</param-value>
</context-param>
<listener>
<listener-class>com.foo.service.AppInitialiser</listener-class>
</listener>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
</web-app>
Конфигурация для FooWS аналогична. Ни один из них не содержит упоминания о контексте приложения, поэтому я ожидаю, что он должен использовать /FooWS, а не /web по умолчанию.
Очевидное решение, казалось бы, состоит в том, чтобы переопределить контекстный путь в файле web.xml, но я не могу найти способ сделать это. Какие-либо предложения?
Просто небольшое дополнение, я случайно изменил контекстный путь на /FooW. На этот раз он развернулся, как и ожидалось, в /FooW. Изменение его обратно, если /FooWS приводит к возврату старого поведения, то есть оно снова развертывается в /web.Кажется, у меня есть обходной путь на данный момент.
Для всех, кто следит за этим, я получил такое же поведение с 3.1.2. Сейчас вернулся на 3.1(b43)и она ведет себя как положено.