Режим разработки GWT не работает (настройка web.xml)

Мое приложение отлично работает в режиме разработки (с вызовами GWT-RPC), однако всякий раз, когда я пытаюсь протестировать его в рабочем режиме (удаляя ?gwt.codesvr=127.0.0.1:9997 часть URL), он использовал, чтобы дать мне пустую страницу.

Я вручную проверил файл VoitureTourisme.html и изменил путь файла voitureTourisme.nocache.js к рабочему (это означает, что мой Web.xml не настроен должным образом, верно? Тогда почему он работает в режиме разработки?)

Теперь это выглядит так<script language="javascript" src="voitureTourisme/voitureTourisme.nocache.js"></script>но раньше

src="com.devsys.calculateur.voitureTourisme.VoitureTourisme/com.devsys.calculateur.voitureTourisme.VoitureTourisme.nocache.js"когда я впервые скомпилировал. Поскольку я пробовал разные варианты и компилировал несколько раз, теперь в моей войне есть 2 папки с модулями: "voitureTourisme" и другая с полным путем, как показано выше.

Я почти уверен, что путаю правильную настройку файлов VoitureTourisme.gwt.xml и Web.XML, потому что мне не пришлось бы вручную исправлять скомпилированный HTML-файл, если бы я это сделал. После того, как я исправил это вручную (что мне не нужно было делать), мои вызовы RPC показали ошибку 404, потому что они не нашли мой сервлет для службы (неверный URL).

Надеюсь, вы можете показать мне, что не так и почему с моей конфигурацией

web.xml

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
    <!-- TODO: Add <servlet> tags for each servlet here. -->
    <!-- TODO: Add <servlet-mapping> tags for each <servlet> here. -->
    <!-- TODO: Optionally add a <welcome-file-list> tag to display a welcome file. -->
     <!-- Servlets -->
  <servlet>
    <servlet-name>calculateurDataService</servlet-name>
    <servlet-class>com.devsys.calculateur.voitureTourisme.server.form.CalculateurDataServiceImpl</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>calculateurDataService</servlet-name>
    <url-pattern>/com.devsys.calculateur.voitureTourisme.VoitureTourisme/calculateurDataService</url-pattern>
  </servlet-mapping>
</web-app>

VoitureTourisme.gwt.xml

<module>
    <inherits name="com.google.gwt.user.User"/>
    <inherits name="com.google.gwt.user.theme.standard.Standard"/>
    <inherits name="com.devsys.util.XmlUtil"/>
    <inherits name="com.devsys.util.UrlUtil"/>
    <inherits name="com.google.gwt.i18n.I18N"/>
    <entry-point class="com.devsys.calculateur.voitureTourisme.client.VoitureTourisme"/>
</module>

У меня также есть мой сервисный интерфейс, использующий

@RemoteServiceRelativePath("calculateurDataService")

Это верно? Должен ли я использовать это?

1 ответ

Решение

Я думаю, что проблема связана с именем модуля. Попробуйте добавить эту строку вашего gwt.xml до начала наследования:

<module rename-to='voituretourisme'>

и затем в вашем файле web.xml попробуйте изменить на:

<url-pattern>/voituretourisme/calculateurDataService</url-pattern>

Ваш HTML-файл должен выглядеть так:

<script language="javascript" src="voituretourisme/voituretourisme.nocache.js"></script>

чувствительность к регистру, и я считаю, что это должно правильно скомпилироваться и работать как в режиме разработки, так и в режиме производства.

Другие вопросы по тегам