невозможно позвонить в сервис на GWT - PullRequest
0 голосов
/ 05 июля 2011

Я тестирую пример веб-приложения на GWT, я загрузил весь SDK и плагин на Eclipse, я разработал небольшие формы, которые принимают несколько входных данных от пользователя, и когда пользователь нажимает на кнопку, он вызывает сервис, используя RPC, теперь выдает ошибку "

<code> **errorcom.google.gwt.user.client.rpc.StatusCodeException: 404 <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 404 NOT_FOUND</title>
</head>
<body><h2>HTTP ERROR: 404</h2><pre>NOT_FOUND

RequestURI = / com.mpigeon.foofy.signup.SignUp / SignUpservlet

Приведено в действие Jetty: //** ".то есть он вообще не подключается к сервису, я действительно застрял здесь, пожалуйста, помогите мне выявить ошибку.я делюсь кодами ниже

это файл signup.gwt.xml

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='foofysignup'>
    <inherits name="com.google.gwt.user.User"/>
    <inherits name="com.google.gwt.user.theme.standard.Standard"/>
    <entry-point class="com.mpigeon.foofy.signup.client.SignUp"/>

    <source path='client'/>
  <source path='shared'/>

</module>

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>fsignup</servlet-name>
    <servlet-class>com.mpigeon.foofy.signup.server.SignupServiceImpl</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>fsignup</servlet-name>
    <url-pattern>/foofysignup/SignUpservlet</url-pattern>
  </servlet-mapping>

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

</web-app>

интерфейс служебного файла:

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import com.mpigeon.foofy.signup.shared.SignUpFields;
@RemoteServiceRelativePath("SignUpservlet")
public interface SignupService extends RemoteService {
    public String StoreSignUp(SignUpFields obj) throws IllegalArgumentException;

}

signup.html

<!doctype html>
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">

        <!--                                                               -->
        <!-- Consider inlining CSS to reduce the number of requested files -->
        <!--                                                               -->
        <link type="text/css" rel="stylesheet" href="SignUp.css">

        <!--                                           -->
        <!-- Any title is fine                         -->
        <!--                                           -->
        <title>Wrapper HTML for SignUp</title>

        <!--                                           -->
        <!-- This script loads your compiled module.   -->
        <!-- If you add any GWT meta tags, they must   -->
        <!-- be added before this line.                -->
        <!--                                           -->
        <script language="javascript" src="/com.mpigeon.foofy.signup.SignUp.nocache.js"></script>

    </head>

    <!--                                           -->
    <!-- The body can have arbitrary html, or      -->
    <!-- we leave the body empty because we want   -->
    <!-- to create a completely dynamic ui         -->
    <!--                                           -->
    <body>

        <!-- OPTIONAL: include this if you want history support -->
        <iframe id="__gwt_historyFrame" style="width:0;height:0;border:0"></iframe>
    <div id="signupdiv"></div>
    </body>
</html>

Ответы [ 2 ]

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

Если вы замените

@RemoteServiceRelativePath("SignUpservlet")

с

@RemoteServiceRelativePath("../foofysignup/SignUpservlet")

запрос RPC должен работать. Это не хорошее решение, но оно работает по крайней мере.

Как указал Террелл, ваше приложение загружается с /com.mpigeon.foofy.signup.SignUp/, но из-за вашего атрибута переименования ваше приложение должно быть загружено с /foofysignup/. Это может быть вызвано старыми файлами в папке WebContent.

Не могли бы вы опубликовать свой SignUp.html?

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

Вы делали GWT-компиляцию после добавления <module rename-to='foofysignup'> в ваш gwt.xml?

Из этой ошибки видно, что ваше приложение ожидает, что сервлеты будут отображаться под полным именем модуля по умолчанию: RequestURI=/com.mpigeon.foofy.signup.SignUp/SignUpservlet

...