JBoss игнорирует путь контекста в application.xml при использовании @WebService и @Stateless в файле war - PullRequest
1 голос
/ 25 марта 2011

У меня есть файл ear, который состоит из файла war и нескольких файлов jar. Application.xml со следующим содержимым:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC
    "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
    "http://java.sun.com/dtd/application_1_3.dtd">
<application>
  <display-name>Web Application</display-name>
    <module>
        <web>
           <web-uri>web-endpoint-1.0.war</web-uri>
           <context-root>/web</context-root>
        </web>
    </module>
    <module>
        <ejb>backend-1.1.jar</ejb>
    </module>
</application>

Этот файл ear развертывается в JBOSS AS 6, однако корень контекста игнорируется, а имя файла war используется для корневого контекста.

Может кто-то указать, почему Jboss игнорирует то, что указано в application.xml?

Спасибо !!


Я посмотрел дальше в проблему, и проблема заключается в следующем:

В файле WAR у меня есть сессионный компонент без сохранения состояния для реализации веб-службы. Когда я удаляю сеансовые компоненты без сохранения состояния, корень контекста теперь соответствует тому, который указан в application.xml, как требуется. Как лучше всего реализовать веб-сервис в файле war с помощью аннотации @WebService?

Ответы [ 2 ]

1 голос
/ 20 июня 2011

Попробуйте добавить аннотацию @WebContext(contextRoot="/YourContextRoot").

Это просто сработало для меня.

1 голос
/ 03 апреля 2011

Я нашел решение этой проблемы следующим образом.

Вместо того, чтобы использовать аннотацию @Stateless для класса, я изменил класс с аннотацией @WebService на сервлет.
Этот обходной путь устраненпотребность в сессионных компонентах без сохранения состояния в файле war, хотя это должно быть возможно для JavaEE6.
Корневой корень файла war при развертывании теперь соответствует корню в файле application.xml .

...