Jump to content
Sign in to follow this  
taviroquai

GWT - RemoteService devolve 404

Recommended Posts

taviroquai

Olá pessoal preciso da vossa ajuda...

Estou a iniciar-me no GWT e a seguir este tutorial http://www.ibm.com/developerworks/java/library/j-ajax4/

Aqui defino que o serviço está em "ws" e pelo firebug vejo que o pedido é feito a http://localhost:8080/POverlord/ws

// Statically configure RPC service
private static WeatherServiceAsync ws = 
   (WeatherServiceAsync) GWT.create(WeatherService.class);
static {
   ((ServiceDefTarget) ws).setServiceEntryPoint("ws");
}

O problema é a comunicação com o servidor, devolve 404...

Coloquei este mapeamento no web.xml

    <servlet>
        <servlet-name>AccountService</servlet-name>
        <servlet-class>org.poverlord.client.AccountService</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>AccountService</servlet-name>
        <url-pattern>/POverlord/ws</url-pattern>
    </servlet-mapping>

Mas continua a não saber responder.

O Servidor é tomcat6.

Obrigado.

Share this post


Link to post
Share on other sites
taviroquai

Para já só tenho este serviço e o único no tutorial...

Estou a adaptar o tutorial para mim: em vez de WeatherService tenho AccountService.

Estou a definir assim o EntryPoint do serviço porque é o que está no tutorial... posso definir de outra forma?

O mapeamento no web.xml que fiz está correcto?

Share this post


Link to post
Share on other sites
aladino77

Error 404 é o Not Found, o caminho que está a indicar para o endpoint não é válido.

Vc indicou no web.xml /POverlord/ws mas no código tem

// Statically configure RPC service
private static WeatherServiceAsync ws = 
   (WeatherServiceAsync) GWT.create(WeatherService.class);
static {
   ((ServiceDefTarget) ws).setServiceEntryPoint("ws");
}

Mude setServiceEntryPoint("ws") para setServiceEntryPoint("/POverlord/ws");

Aconselho a usar os tutoriais da página do GWT. http://code.google.com/webtoolkit/doc/latest/tutorial/

Esse tutorial que está a usar é de 2006 e muita coisa mudou no GWT desde 2006.

Share this post


Link to post
Share on other sites
taviroquai

Viva!

@aladino77

Tentei com o setServiceEntryPoint("/POverlord/ws") mas também não está a saber responder...

Isto é um problema do Tomcat? De que outra forma posso testar para que o tomcat responda neste URL?

Obrigado a ambos  :)

Share this post


Link to post
Share on other sites
taviroquai

Ok... já tenho isto a funcionar  :thumbsup:

Segui o que está nesta página

Removi esta forma de definir o Entry point do serviço

static {
       ((ServiceDefTarget) ws).setServiceEntryPoint("/POverlord/ws");
}

... e defini o entry point do serviço na minha interface AccountService.java com @RemoteServiceRelativePath

@RemoteServiceRelativePath("ws")
public interface AccountService extends RemoteService {

   public String getAccountHtml(String name, String password);
} 

Depois disto, pelo fire bug via que os pedidos estavam a ser feitos a http://localhost:8080/POverlord/org.poverlord.Main/ws

Depois no web.xml, o url-pattern não é full, mas sim relativo, então ficou a funcionar com:

    <servlet>
        <servlet-name>accountServiceImpl</servlet-name>
        <servlet-class>org.poverlord.server.AccountServiceImpl</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>accountServiceImpl</servlet-name>
        <url-pattern>/org.poverlord.Main/ws</url-pattern>
    </servlet-mapping>

Provavelmente, com o que tinha no inicio, bastava-me alterar no web.xml o url-pattern para /ws

Muito obrigado pelas dicas :)

A seguir, no lado do servidor, vou tentar usar Hibernate...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.