Ошибка 404 во время GWT RPC Jetty сервера - PullRequest
0 голосов
/ 03 сентября 2011

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

[WARN] 404 - POST /com.sribalajiele.gwt.client.SriBalajiEle/emailRpcService (127.0.0.1) 
Email Failure404 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 404 NOT_FOUND</title>

Код, как показано ниже.

/*
 * Copyright (c) Balaji electricals AG 2011, All Rights Reserved
 */
package com.sribalajiele.gwt.client.client;

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

/**
 * @author kdel.
 * This interface provides Email Service.
 *
 */
@RemoteServiceRelativePath("emailRpcService")
public interface EmailRpcService extends RemoteService {

   public WriteToUsForm sendEmail(WriteToUsForm writeToUsForm) throws IllegalArgumentException;
}


/*
 * Copyright (c) Balaji electricals 2011, All Rights Reserved
 */
package com.sribalajiele.gwt.client.client;

import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 * @author kdel
 * Async service for Email.
 */
public interface EmailRpcServiceAsync {
   void sendEmail(WriteToUsForm writeToUsForm, AsyncCallback<WriteToUsForm> asyncCallback)
   throws IllegalArgumentException;
}


public final class EmailRpcServiceImpl extends RemoteServiceServlet implements EmailRpcService {

   /**
    * Default serialVersionUID.
    */
   private static final long serialVersionUID = 1L;

   @Override
   public WriteToUsForm sendEmail(WriteToUsForm writeToUsForm) throws IllegalArgumentException  {  
          System.out.println("send Email called");
    }
}

В web.xml:

<servlet>
    <servlet-name>emailService</servlet-name>
    <servlet-class>com.sribalajiele.gwt.client.server.EmailRpcServiceImpl</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>emailService</servlet-name>
    <url-pattern>sriBalajiEle/emailRpcService</url-pattern>
</servlet-mapping>

Ответы [ 4 ]

2 голосов
/ 21 сентября 2011
Finally i could correct my self, may be this is use full for others.

1) @RemoteServiceRelativePath("emailRpcService")
public interface EmailRpcService extends RemoteService {

2) In *Module*.gwt.xml
<servlet class="com.sribalajiele.ui.server.EmailRpcServiceImpl" path="/emailRpcService"/>

3) Register your servlet in web.xml
<servlet>
        <servlet-name>eamilService</servlet-name>
        <servlet-class>com.sribalajiele.ui.server.EmailRpcServiceImpl</servlet-class>
    </servlet>
    <servlet-mapping> 
        <servlet-name>eamilService</servlet-name> 
        <url-pattern>/com.sribalajiele.ui.SriBalaji/emailRpcService</url-pattern> 
    </servlet-mapping>

4) Usage:

  final EmailRpcServiceAsync emailRpcServiceAsync = (EmailRpcServiceAsync) GWT.create(EmailRpcService.class);
      ServiceDefTarget serviceDef = (ServiceDefTarget) emailRpcServiceAsync;
      serviceDef.setServiceEntryPoint(GWT.getModuleBaseURL() + "emailRpcService");
emailRpcServiceAsync.sendEmail(parameter, new AsyncCall()) {
onSuccess() { }
onFailure() { }
}

Надеюсь, это поможет ...

1 голос
/ 03 сентября 2011

Проблема заключается в том, что сервлет сопоставлен с /sriBalajiEle/emailRpcService, но запрос отправляется на /com.sribalajiele.gwt.client.SriBalajiEle/emailRpcService. URL, на который отправляется запрос, генерируется GWT в виде /${moduleName}/relativePath. Если вы включите следующее в верхней части вашего модуля GWT, он должен исправить 404.

<module rename-to="sriBalajiEle">
0 голосов
/ 21 мая 2013

ошибка 404 приведет к созданию URL-адреса, мне нужно было убедиться, что URL-адрес, указанный в сообщении 404, является URL-адресом в моем файле web.xml

<servlet-mapping>
    <servlet-name>messageServiceImpl</servlet-name>
    <url-pattern>/com.mbe.site.main/message</url-pattern>
</servlet-mapping>
0 голосов
/ 20 сентября 2011

1) Включите аннотации и в ваш интерфейс.

@RemoteServiceRelativePath("emailRpcService")
public interface EmailRpcServiceAsync {
   void sendEmail(WriteToUsForm writeToUsForm,

AsyncCallback asyncCallback) выдает IllegalArgumentException; }

2) И измените ваше отображение URL на следующее.

    <url-pattern>com.sribalajiele.gwt.EmailRpcService/emailRpcService</url-pattern>

В моем случае, отображение URL давало мне головную боль часами. Надеюсь, это поможет.

...