Smartgwt – Service implementation URL not specified

septiembre 8, 2009

Si te aparece este error lo mas seguro es que olvidaste “anotar” la interfaz del servicio RPC con el atributo RemoteServiceRelativePath.

@RemoteServiceRelativePath("MyRPCService")
public interface MyRPCService extends RemoteService {
    public String getHelloWorld(String name);
}

Aqui lo importante es que la anotación concuerde con nuestras declaraciones del servlet en el archivo de configuracion del modulo, ej. MyModule.gwt.xml, y en el web.xml

MyModule.gwt.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.6.4//EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/src/gwt-module.dtd">
<module rename-to="my.web.application">
    <inherits name="com.google.gwt.user.User" />
    <inherits name="com.smartgwt.SmartGwt"/>
    <entry-point class="my.web.application.client.Main" />
    <servlet class="my.web.application.server.MyRPCServiceImpl" path="/MyRPCService"/>
</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>
    <servlet>
        <servlet-name>MyRPCService</servlet-name>
        <servlet-class>my.web.application.server.MyRPCServiceImpl</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>MyRPCService</servlet-name>
        <url-pattern>/my.web.application/MyRPCService</url-pattern>
    </servlet-mapping>

    <!-- Default page to serve -->
    <welcome-file-list>
        <welcome-file>Main.html</welcome-file>
    </welcome-file-list>
</web-app>

byte!

Anuncios

Una respuesta to “Smartgwt – Service implementation URL not specified”

  1. Sanas Says:

    Me parece útil tu post, pero me ha surgido una duda… ¿Es necesario especificar esta línea en el “MyModule.gwt.xml”?

    ——————————–

    Po otra parte, estoy intentando consumir una lógica común para varias aplicaciones gwt. Es decir, que compartan el server sin que este se compile en cada aplicación.

    Parece algo trivial pero tengo dificultades… Trato de mapear los servicios a una URL nueva.
    La idea es: tengo app1.war, app2.war y app3.war que consuman la implementación de los servicios en un serv.war. Todos estos war desplegados en un Tomcat.

    Lo que pretendo con esto es tener un proyecto para la lógica del server y que lo pueda compilar y desplegar de forma independiente al resto de apps.

    Y no consigo hacerlo porque los mapeos, entiendo, que solo se hacen dentro del mismo módulo y de los que hace el inherit…

    Es una estrategia un poco distinta a la que proponen en la documentacion de GWT. De utilizar un “server-half”….

    “Multi-Tier Deployment

    In more complex, multi-tiered architectures, your GWT service definitions could simply be lightweight gateways that call through to back-end server environments such as J2EE servers. From this perspective, your services can be viewed as the “server half” of your application’s user interface. Instead of being general-purpose, services are created for the specific needs of your user interface. Your services become the “front end” to the “back end” classes that are written by stitching together calls to a more general-purpose back-end layer of services, implemented, for example, as a cluster of J2EE servers. This kind of architecture is appropriate if you require your back-end services to run on a physically separate computer from your HTTP server.”

    Gracias, y haber si se te ocurre o sabes cómo hacerlo.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: