I am having problems deploying my application on tomcat. I am using the Restlet
GWT extension and while the application works on the hosted mode, it doesn't
work when I deploy it on Tomcat.
My Application file (snippet)
-----------------------
...
@Override
public synchronized Restlet createRoot() {
Router router = new Router(getContext());
router.attach("/items",ItemsResource.class);
router.attach("/items/{itemName}", ItemResource.class);
return router;
}
...
On the client,
-------------------
grid.addRecordClickHandler(new RecordClickHandler() {
public void onRecordClick(RecordClickEvent event) {
final Client client = new Client(Protocol.HTTP);
client.get("http://localhost:8080/CaseManager/items", new Callback(){
@Override
public void onEvent(Request request, Response response) {
try{
com.google.gwt.user.client.Window.alert( response.getEntity().getText() );
}
catch(Exception e){
e.printStackTrace();
}
}
});
}
});
-----
My web.xml when deployed on tomcat is
------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<display-name>Test servlet</display-name>
<context-param>
<param-name>org.restlet.application</param-name>
<param-value>
com.test.server.FirstResourceApplication
</param-value>
</context-param>
<!-- Restlet adapter -->
<servlet>
<servlet-name>ServerServlet</servlet-name>
<servlet-class>
org.restlet.ext.servlet.ServerServlet
</servlet-class>
</servlet>
<!-- Catch all requests -->
<servlet-mapping>
<servlet-name>ServerServlet</servlet-name>
<url-pattern>/items</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServerServlet</servlet-name>
<url-pattern>/items/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>CaseManager.html</welcome-file>
</welcome-file-list>
</web-app>
When I access the URL
http://localhost:8080/CaseManager/CaseManager.html
the call in the client fails with a 404 error.
Feb 19, 2009 5:26:38 PM org.apache.catalina.core.ApplicationContext log
INFO: ServerServlet: [Noelios Restlet Engine] - Attaching application:
com.testapp.server.firstresourceapplicat...@dec8b3 to URI:
/CaseManager/items
Feb 19, 2009 5:26:38 PM org.restlet.engine.LogFilter afterHandle
INFO: 2009-02-19 17:26:38 127.0.0.1 - 127.0.0.1
8080 GET /CaseManager/items - 404 330 - 31
http://localhost:8080 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;
.NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727) -
Feb 19, 2009 5:26:42 PM org.restlet.engine.LogFilter afterHandle
INFO: 2009-02-19 17:26:42 127.0.0.1 - 127.0.0.1
8080 GET /CaseManager/items - 404 330 - 0
http://localhost:8080 Noelios-Restlet-Engine/1.2.m1
http://localhost:8080/CaseManager/782D6C746CFC4EFC288789EE2C72C8F3.cache.html
>From this it looks like the request is going to FirstResourceApplication, but
>its unable to find the appropriate router. I know that the issue is in the
>web.xml (as that's the only thing that changed between the hosted mode and the
>tomcat deplopyment).
Has anyone faced this issue??
------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=1194885