Режим разработки GWT не работает (настройка web.xml) - PullRequest
3 голосов
/ 17 августа 2011

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

Я вручную проверил файл 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 Ответ

2 голосов
/ 18 августа 2011

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

<module rename-to='voituretourisme'>

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

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

ваш html-файл должен выглядеть следующим образом:

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

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

...