GWT RPC "404 not found" ошибка. Как заставить RPC работать на вашем собственном сервере Apache? - PullRequest
2 голосов
/ 26 июля 2011

Реализованный мной RPC отлично работает в режиме разработки.Но как только я копирую код на настоящий сервер apache, RPC перестает работать! Как настроить приложение GWT таким образом, чтобы RPC работал на сервере apache? Я нашел учебник GWT по RPC, но он не очень полезен. Другие ссылки о конфигурации RPC будут очень благодарны!


Я разработал некоторый код GWT.Я реализовал и начал работать RPC клиент-серверное соединение.Когда я говорю, что это работает ... я имею в виду, что это прекрасно работает в режиме разработки.Я могу щелкнуть, и он взаимодействует с сервером, как и ожидалось.

Затем, когда я выполняю компиляцию GWT и копирую каталог war в папку htdocs моего сервера apache.Я могу просматривать веб-сайт, но когда я нажимаю на кнопку, которая должна инициировать RPC, ничего не происходит.Я проверяю веб-консоль Firefox -> tools -> и вижу «NAMEOFRPC 404 not found».

Вот мой WEB-INF web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

  <!-- Servlets -->
  <servlet>
    <servlet-name>NameOfRpc</servlet-name>
    <servlet-class>com.company.nameOfModule.server.rpc.NameOfRpcImpl</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>NameOfRpc</servlet-name>
    <url-pattern>/nameOfModule</url-pattern>
  </servlet-mapping>

  <!-- Default page to serve -->
  <welcome-file-list>
    <welcome-file>NameOfModule.html</welcome-file>
  </welcome-file-list>

</web-app>

ВотЯ получаю сообщение об ошибке веб-консоли firefox:

[16:50:58.792] POST http://SERVER/gwt/nameOfModule/nameOfModule/NameOfRpc [HTTP/1.1 404 Not Found 3065ms]

Я копирую папку war в / SERVER / gwt, а затем переименовываю ее в nameOfModule.

Что-то не так с моим WEB-INF / web.xml?

Ответы [ 2 ]

2 голосов
/ 27 июля 2011

Вам нужен работающий экземпляр JVM, работающий с контейнером сервлета J2EE, в котором размещен ваш код сервлета. Apache, как я понимаю, является просто http-сервером и не запускает Java-код или хост-сервлеты из коробки. Я предполагаю, что ваша вики - это просто группа HTML-страниц, обслуживаемых apache.

Tomcat - это просто вариант. Это стандартное использование JVM для размещения сервлетов Java. Он также может обслуживать HTML-файлы, поэтому вы можете прекратить использовать сервер Apache http, если вы используете tomcat.

Ваше приложение хорошо работало в режиме разработки, поскольку в GWT Hosted Mode имеется встроенный сервер Jetty, представляющий собой легкий контейнер сервлетов, сравнимый с tomcat. Такие серверы, как tomcat, jetty и jboss, на самом деле читают ваш web.xml и делают то, что вы в нем описали.

0 голосов
/ 26 июля 2011

Вам понадобится следующее в вашем web.xml:

<url-pattern>/nameOfModule/RpcGetXml</url-pattern>

Или что-либо в вашем RemoteServiceRelativePath

...