Проблемы с развертыванием GWT с RPC на tomcat (возможно, проблема web.xml) - PullRequest
2 голосов
/ 22 июля 2010

Мое приложение gwt, использующее базу данных mysql, обычно выполняет отладку при затмении. Когда я запускаю его на tomcat, он отображается правильно, но когда я нажимаю на кнопку, которая делает RPC (выполняет сервлет и связывается с базой данных), я получаю ошибку. Я проверил свой журнал Tomcat, и я вижу ошибку 404 при нажатии на кнопку:

0:0:0:0:0:0:0:1 - - [22/Jul/2010:10:32:39 +0200] "GET /Bazica/war/Bazica.html HTTP/1.1" 304 -
0:0:0:0:0:0:0:1 - - [22/Jul/2010:10:32:39 +0200] "GET /Bazica/war/Bazica.css HTTP/1.1" 304 -
0:0:0:0:0:0:0:1 - - [22/Jul/2010:10:32:39 +0200] "GET /Bazica/war/bazica/bazica.nocache.js HTTP/1.1" 304 -
0:0:0:0:0:0:0:1 - - [22/Jul/2010:10:32:39 +0200] "GET /Bazica/war/bazica/    F0C186B415ADBD43522C686552368517.cache.html HTTP/1.1" 304 -
0:0:0:0:0:0:0:1 - - [22/Jul/2010:10:32:39 +0200] "GET /Bazica/war/bazica/gwt/standard/images/hborder.png    HTTP/1.1" 304 -
0:0:0:0:0:0:0:1 - - [22/Jul/2010:10:33:29 +0200] "POST /Bazica/war/bazica/greet HTTP/1.1" 404 1024

Полагаю, это проблема файла web.xml и шаблона url. Я думаю, я не понимаю этот шаблон URL, на что он должен указывать?

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>greetServlet</servlet-name>
 <servlet-class>com.test.baze.server.GreetingServiceImpl</servlet-class>
 </servlet>

 <servlet-mapping>
 <servlet-name>greetServlet</servlet-name>
 <url-pattern>/bazica/greet</url-pattern>
 </servlet-mapping>

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

 </web-app>

Мой интерфейс имеет аннотацию RemoteServiceRelativePath ("приветствовать"), я думаю, что это актуально:

package com.test.baze.client;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

/**
* The client side stub for the RPC service.
*/
@RemoteServiceRelativePath("greet")
public interface GreetingService extends RemoteService {
String greetServer(String name) throws IllegalArgumentException;
}

Я попытался изменить шаблон url в папку моей реализации службы / WEB-INF / classes / com / test / baze / server, но мое приложение зависает без сообщения. Не могли бы вы помочь мне изменить мой web.xml или sth. иначе, чтобы мое приложение работало на Tomcat. Tnx.

1 Ответ

0 голосов
/ 23 июля 2010

Если вы посмотрите на документы , ваш шаблон URL должен быть:

<url-pattern>/module_name/greet</url-pattern>

Но в вашем web.xml вы установили имя модуля "bazica". Вы переименовываете модуль в файле модуля GWT (файл .gwt.xml) в bazica? Если нет, вам придется либо переименовать его, либо использовать полный путь к файлу модуля GWT.

...