Hello All -- I've been to the Tomcat forums already originally
thinking it was a servlet container issue. I don't think this is the
case anymore.
I have made a simple generic gwt rpc module.. When I run in hosted
mode, everything is great. When I deploy my WAR file, the client side
stuff works, but no servlet. Does anything jump out?? I've been
fighting this for a couple of days.. I keep coming back to the
conclusion that my container is configured wrong.
A bit more info about container.. I'm running Ubuntu 8.10 / Apache2 /
tomcat6 / mod-proxy
Apache and Tomcat appear fully functional.. I have also successfully
added a proxy to take me to port 8080 when calling my webapp. I've
posted similar data to TomCat forum, and judging from responses, I
have the container properly configured?
I've also tried re-arranging my WEB-INF/ structure...
It was original WEB-INF/classes/MsgServiceImpl.class
not it is WEB-INF/classes/com/i2s/webMonster/server/
MsgServiceImpl.class
I don't think I have a clue at this point...
Thanks in Advance, Attached below are my code/logs
-Scarlson
--- Tomcat localhost log file output ---------
SEVERE: Allocate exception for servlet MsgService
java.lang.ClassNotFoundException: com.i2s.webMonster.client.MsgService
at org.apache.catalina.loader.WebappClassLoader.loadClass
(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass
(WebappClassLoader.java:1233)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:
124)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal
(WebappClassLoader.java:1847)
at org.apache.catalina.loader.WebappClassLoader.findClass
(WebappClassLoader.java:890)
at org.apache.catalina.loader.WebappClassLoader.loadClass
(WebappClassLoader.java:1354)
at org.apache.catalina.loader.WebappClassLoader.loadClass
(WebappClassLoader.java:1233)
at org.apache.catalina.core.StandardWrapper$1.run
(StandardWrapper.java:1077)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.StandardWrapper.loadServlet
(StandardWrapper.java:1073)
at org.apache.catalina.core.StandardWrapper.allocate
(StandardWrapper.java:808)
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:129)
at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109)
at org.apache.catalina.valves.AccessLogValve.invoke
(AccessLogValve.java:568)
at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
447)
at java.lang.Thread.run(Thread.java:619)
---------------------snip
----------- web.xml -----------------
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<!-- Standard Action Servlet Configuration -->
<servlet>
<servlet-name>MsgService</servlet-name>
<servlet-class>com.i2s.webMonster.server.MsgServiceImpl</servlet-
class>
</servlet>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>MsgService</servlet-name>
<url-pattern>/MsgService</url-pattern>
</servlet-mapping>
</web-app>
------------------------ snip --------------------
----------- MsgService.java --------------------------
package com.i2s.webMonster.client;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
@RemoteServiceRelativePath("MsgService")
public interface MsgService extends RemoteService {
/**
* Utility class for simplifying access to the instance of async
service.
*/
public String getMsg();
public static class Util {
private static MsgServiceAsync instance;
public static MsgServiceAsync getInstance(){
if (instance == null) {
instance = GWT.create(MsgService.class);
}
return instance;
}
}
}
-------------------- snip
----------- MsgServiceAsync.java --------------------------
package com.i2s.webMonster.client;
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface MsgServiceAsync {
/**
* Utility class for simplifying access to the instance of async
service.
*/
public void getMsg(AsyncCallback<String> callback);
}
------------------ snip
----------- MsgServiceImpl.java --------------------------
package com.i2s.webMonster.server;
import com.i2s.webMonster.client.MsgService;
public class MsgServiceImpl extends RemoteServiceServlet implements
MsgService {
@Override
public String getMsg() {
// TODO Auto-generated method stub
return "Gotcha!";
}
}
--------------snip
----------- Here is what the call to the servlet looks like
private void getServerMsg() {
MsgServiceAsync msgService = MsgService.Util.getInstance();
ServiceDefTarget endpoint = (ServiceDefTarget)msgService;
endpoint.setServiceEntryPoint(GWT.getModuleBaseURL() +
"MsgService");
AsyncCallback callback = new AsyncCallback() {
public void onSuccess(Object result) {
Window.alert((String) result);
}
public void onFailure(Throwable caught) {
Window.alert("Server request falure.");
}
};
msgService.getMsg(callback);
}
---------------- snip
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---