Modeshape Web Explorer [4.2.0.Final] - missing gwt-servlet dependency and no longer able to connect to repository deployed in same Tomcat 7 container
shane_k Apr 21, 2015 7:35 AMFolks,
A few months ago I raised a question [ Issues running modeshape-web-explorer [4.1.0.Final] on Tomcat 7 ] relating to issues running Modeshape Web Explorer in Tomcat 7. After some discussion, I was successfully able to embed Modeshape Web Explorer into my Spring MVC application and access the console as expected. I have now updated my project dependencies to use 4.2.0.Final and have encountered two issues:
(a) gwt-servlet (2.5.1) is no longer a transitive dependency of the modeshape-web-explorer artifact (it was in 4.1.0.Final, but appears to be missing/removed from 4.2.0.Final) - is this intentional - should I be using a later version? I had to manually add it as a dependency to my project, otherwise I would see the following CNF exception:
java.lang.ClassNotFoundException: com.google.gwt.user.client.rpc.RemoteService
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:760)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:760)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:745)
(b) once I added the gwt-servlet (2.5.1) dependency to my project, I could now access the Console however I am presented with a modal dialog box stating: "The url argument may not be null"
Nothing else has changed in the project except the switch to the new 4.2.0.Final libraries (and inclusion of gwt-servlet as a standalone dependency). Apologies if I've missed something obvious...
Regards,
Shane