easysoa/EasySOA — Issue #67: FraSCAti Web Explorer in Nuxeo
Author: JGuillemotte
Created: 2011-11-07 09:55:18+00:00
State: open

To resume :

The web explorer starts without any problem in test mode but it is not possible to start a composite. There is an error when the generated classes are compiled.

Here is the stacktrace when we try to load a Frascati example (helloworld-servlet) in the web explorer :

INFO: org.ow2.frascati.examples.helloworld.servlet.HelloWorldHttpServletFCSCAContentControllerImpl
INFO: org.ow2.frascati.examples.helloworld.servlet.HelloWorldHttpServletFCscaPrimitiveFC792b8a24
INFO: Compiling...
2011-11-07 10:52:27.458:WARN::/frascati-web-explorer/uploadComposite
org.apache.velocity.exception.MethodInvocationException: Invocation of method 'service' in class juliac.generated.javax.servlet.ServletFcSR threw exception org.ow2.frascati.tinfi.TinfiRuntimeException: java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.Compiler.(Lorg/eclipse/jdt/internal/compiler/env/INameEnvironment;Lorg/eclipse/jdt/internal/compiler/IErrorHandlingPolicy;Lorg/eclipse/jdt/internal/compiler/impl/CompilerOptions;Lorg/eclipse/jdt/internal/compiler/ICompilerRequestor;Lorg/eclipse/jdt/internal/compiler/IProblemFactory;)V at uploadComposite[line 1, column 11]
at org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:243)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:187)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at org.apache.velocity.Template.merge(Template.java:356)
at org.apache.velocity.Template.merge(Template.java:260)
at org.ow2.frascati.implementation.velocity.ServletImplementationVelocity.service(ServletImplementationVelocity.java:166)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at juliac.generated.javax.servlet.ServletInterceptorSCALCb56bb98SCACCIntent.service(ServletInterceptorSCALCb56bb98SCACCIntent.java:65)
at juliac.generated.javax.servlet.ServletFcInItf.service(ServletFcInItf.java:25)
at org.ow2.frascati.servlet.manager.ServletHandler.handle(JettyServletManager.java:156)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:937)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:871)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
at org.eclipse.jetty.server.Server.handle(Server.java:346)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:589)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1065)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:823)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:220)
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:411)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:535)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529)
at java.lang.Thread.run(Thread.java:662)
Caused by:
org.ow2.frascati.tinfi.TinfiRuntimeException: java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.Compiler.(Lorg/eclipse/jdt/internal/compiler/env/INameEnvironment;Lorg/eclipse/jdt/internal/compiler/IErrorHandlingPolicy;Lorg/eclipse/jdt/internal/compiler/impl/CompilerOptions;Lorg/eclipse/jdt/internal/compiler/ICompilerRequestor;Lorg/eclipse/jdt/internal/compiler/IProblemFactory;)V
at org.ow2.frascati.component.factory.api.MembraneGenerationInterceptorSCALCb56bb98SCACCIntent.close(MembraneGenerationInterceptorSCALCb56bb98SCACCIntent.java:83)
at org.ow2.frascati.component.factory.api.MembraneGenerationInterceptorSCAIntent.close(MembraneGenerationInterceptorSCAIntent.java:61)
at org.ow2.frascati.component.factory.api.MembraneGenerationFcInItf.close(MembraneGenerationFcInItf.java:58)
at org.ow2.frascati.component.factory.api.MembraneGenerationInterceptorSCAIntent.close(MembraneGenerationInterceptorSCAIntent.java:61)
at org.ow2.frascati.component.factory.api.MembraneGenerationFcInItf.close(MembraneGenerationFcInItf.java:58)
at org.ow2.frascati.component.factory.api.MembraneGenerationFcSR.close(MembraneGenerationFcSR.java:39)
at org.ow2.frascati.component.factory.impl.ComponentFactoryImpl.close(ComponentFactoryImpl.java:339)
at org.ow2.frascati.component.factory.api.MembraneGenerationInterceptorSCALCb56bb98SCACCIntent.close(MembraneGenerationInterceptorSCALCb56bb98SCACCIntent.java:65)
at org.ow2.frascati.component.factory.api.MembraneGenerationInterceptorSCAIntent.close(MembraneGenerationInterceptorSCAIntent.java:61)
at org.ow2.frascati.component.factory.api.MembraneGenerationInterceptorSCAIntent.close(MembraneGenerationInterceptorSCAIntent.java:61)
at org.ow2.frascati.component.factory.api.MembraneGenerationFcInItf.close(MembraneGenerationFcInItf.java:58)
at org.ow2.frascati.component.factory.api.MembraneGenerationInterceptorSCAIntent.close(MembraneGenerationInterceptorSCAIntent.java:61)
at org.ow2.frascati.component.factory.api.MembraneGenerationFcInItf.close(MembraneGenerationFcInItf.java:58)
at org.ow2.frascati.component.factory.api.MembraneGenerationFcSR.close(MembraneGenerationFcSR.java:39)
at org.ow2.frascati.assembly.factory.manager.AssemblyFactoryManager.processComposite(AssemblyFactoryManager.java:485)
at org.ow2.frascati.assembly.factory.manager.AssemblyFactoryManager.getComposite(AssemblyFactoryManager.java:384)
at org.ow2.frascati.assembly.factory.api.CompositeManagerInterceptorSCALCb56bb98SCACCIntent.getComposite(CompositeManagerInterceptorSCALCb56bb98SCACCIntent.java:248)
at org.ow2.frascati.assembly.factory.api.CompositeManagerInterceptorSCAIntent.getComposite(CompositeManagerInterceptorSCAIntent.java:320)
at org.ow2.frascati.assembly.factory.api.CompositeManagerInterceptorSCAIntent.getComposite(CompositeManagerInterceptorSCAIntent.java:320)
at org.ow2.frascati.assembly.factory.api.CompositeManagerFcInItf.getComposite(CompositeManagerFcInItf.java:114)
at org.ow2.frascati.assembly.factory.api.CompositeManagerInterceptorSCAIntent.getComposite(CompositeManagerInterceptorSCAIntent.java:320)
at org.ow2.frascati.assembly.factory.api.CompositeManagerFcInItf.getComposite(CompositeManagerFcInItf.java:114)
at org.ow2.frascati.assembly.factory.api.CompositeManagerFcSR.getComposite(CompositeManagerFcSR.java:46)
at org.ow2.frascati.web.explorer.uploader.UploaderImpl.service(UploaderImpl.java:113)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at juliac.generated.javax.servlet.ServletInterceptorSCALCb56bb98SCACCIntent.service(ServletInterceptorSCALCb56bb98SCACCIntent.java:65)
at juliac.generated.javax.servlet.ServletFcInItf.service(ServletFcInItf.java:25)
at juliac.generated.javax.servlet.ServletInterceptorSCAIntent.service(ServletInterceptorSCAIntent.java:37)
at juliac.generated.javax.servlet.ServletFcInItf.service(ServletFcInItf.java:25)
at juliac.generated.javax.servlet.ServletFcSR.service(ServletFcSR.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at org.apache.velocity.Template.merge(Template.java:356)
at org.apache.velocity.Template.merge(Template.java:260)
at org.ow2.frascati.implementation.velocity.ServletImplementationVelocity.service(ServletImplementationVelocity.java:166)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at juliac.generated.javax.servlet.ServletInterceptorSCALCb56bb98SCACCIntent.service(ServletInterceptorSCALCb56bb98SCACCIntent.java:65)
at juliac.generated.javax.servlet.ServletFcInItf.service(ServletFcInItf.java:25)
at org.ow2.frascati.servlet.manager.ServletHandler.handle(JettyServletManager.java:156)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:937)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:871)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
at org.eclipse.jetty.server.Server.handle(Server.java:346)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:589)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1065)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:823)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:220)
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:411)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:535)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529)
at java.lang.Thread.run(Thread.java:662)
Caused by:
java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.Compiler.(Lorg/eclipse/jdt/internal/compiler/env/INameEnvironment;Lorg/eclipse/jdt/internal/compiler/IErrorHandlingPolicy;Lorg/eclipse/jdt/internal/compiler/impl/CompilerOptions;Lorg/eclipse/jdt/internal/compiler/ICompilerRequestor;Lorg/eclipse/jdt/internal/compiler/IProblemFactory;)V
at org.objectweb.fractal.juliac.compile.jdt.JDTCompiler.(JDTCompiler.java:58)
at org.objectweb.fractal.juliac.compile.jdt.CompileSupportImpl.getJDTCompiler(CompileSupportImpl.java:204)
at org.objectweb.fractal.juliac.compile.jdt.CompileSupportImpl.compile(CompileSupportImpl.java:94)
at org.objectweb.fractal.juliac.CompilationRound.compile(CompilationRound.java:79)
at org.objectweb.fractal.juliac.Juliac.compile(Juliac.java:954)
at org.ow2.frascati.component.factory.juliac.impl.JuliacComponent.close(JuliacComponent.java:349)
at org.ow2.frascati.component.factory.api.MembraneGenerationInterceptorSCALCb56bb98SCACCIntent.close(MembraneGenerationInterceptorSCALCb56bb98SCACCIntent.java:65)
at org.ow2.frascati.component.factory.api.MembraneGenerationInterceptorSCAIntent.close(MembraneGenerationInterceptorSCAIntent.java:61)
at org.ow2.frascati.component.factory.api.MembraneGenerationFcInItf.close(MembraneGenerationFcInItf.java:58)
at org.ow2.frascati.component.factory.api.MembraneGenerationInterceptorSCAIntent.close(MembraneGenerationInterceptorSCAIntent.java:61)
at org.ow2.frascati.component.factory.api.MembraneGenerationFcInItf.close(MembraneGenerationFcInItf.java:58)
at org.ow2.frascati.component.factory.api.MembraneGenerationFcSR.close(MembraneGenerationFcSR.java:39)
at org.ow2.frascati.component.factory.impl.ComponentFactoryImpl.close(ComponentFactoryImpl.java:339)
at org.ow2.frascati.component.factory.api.MembraneGenerationInterceptorSCALCb56bb98SCACCIntent.close(MembraneGenerationInterceptorSCALCb56bb98SCACCIntent.java:65)
at org.ow2.frascati.component.factory.api.MembraneGenerationInterceptorSCAIntent.close(MembraneGenerationInterceptorSCAIntent.java:61)
at org.ow2.frascati.component.factory.api.MembraneGenerationInterceptorSCAIntent.close(MembraneGenerationInterceptorSCAIntent.java:61)
at org.ow2.frascati.component.factory.api.MembraneGenerationFcInItf.close(MembraneGenerationFcInItf.java:58)
at org.ow2.frascati.component.factory.api.MembraneGenerationInterceptorSCAIntent.close(MembraneGenerationInterceptorSCAIntent.java:61)
at org.ow2.frascati.component.factory.api.MembraneGenerationFcInItf.close(MembraneGenerationFcInItf.java:58)
at org.ow2.frascati.component.factory.api.MembraneGenerationFcSR.close(MembraneGenerationFcSR.java:39)
at org.ow2.frascati.assembly.factory.manager.AssemblyFactoryManager.processComposite(AssemblyFactoryManager.java:485)
at org.ow2.frascati.assembly.factory.manager.AssemblyFactoryManager.getComposite(AssemblyFactoryManager.java:384)
at org.ow2.frascati.assembly.factory.api.CompositeManagerInterceptorSCALCb56bb98SCACCIntent.getComposite(CompositeManagerInterceptorSCALCb56bb98SCACCIntent.java:248)
at org.ow2.frascati.assembly.factory.api.CompositeManagerInterceptorSCAIntent.getComposite(CompositeManagerInterceptorSCAIntent.java:320)
at org.ow2.frascati.assembly.factory.api.CompositeManagerInterceptorSCAIntent.getComposite(CompositeManagerInterceptorSCAIntent.java:320)
at org.ow2.frascati.assembly.factory.api.CompositeManagerFcInItf.getComposite(CompositeManagerFcInItf.java:114)
at org.ow2.frascati.assembly.factory.api.CompositeManagerInterceptorSCAIntent.getComposite(CompositeManagerInterceptorSCAIntent.java:320)
at org.ow2.frascati.assembly.factory.api.CompositeManagerFcInItf.getComposite(CompositeManagerFcInItf.java:114)
at org.ow2.frascati.assembly.factory.api.CompositeManagerFcSR.getComposite(CompositeManagerFcSR.java:46)
at org.ow2.frascati.web.explorer.uploader.UploaderImpl.service(UploaderImpl.java:113)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at juliac.generated.javax.servlet.ServletInterceptorSCALCb56bb98SCACCIntent.service(ServletInterceptorSCALCb56bb98SCACCIntent.java:65)
at juliac.generated.javax.servlet.ServletFcInItf.service(ServletFcInItf.java:25)
at juliac.generated.javax.servlet.ServletInterceptorSCAIntent.service(ServletInterceptorSCAIntent.java:37)
at juliac.generated.javax.servlet.ServletFcInItf.service(ServletFcInItf.java:25)
at juliac.generated.javax.servlet.ServletFcSR.service(ServletFcSR.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at org.apache.velocity.Template.merge(Template.java:356)
at org.apache.velocity.Template.merge(Template.java:260)
at org.ow2.frascati.implementation.velocity.ServletImplementationVelocity.service(ServletImplementationVelocity.java:166)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at juliac.generated.javax.servlet.ServletInterceptorSCALCb56bb98SCACCIntent.service(ServletInterceptorSCALCb56bb98SCACCIntent.java:65)
at juliac.generated.javax.servlet.ServletFcInItf.service(ServletFcInItf.java:25)
at org.ow2.frascati.servlet.manager.ServletHandler.handle(JettyServletManager.java:156)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:937)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:871)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
at org.eclipse.jetty.server.Server.handle(Server.java:346)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:589)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1065)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:823)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:220)
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:411)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:535)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529)
at java.lang.Thread.run(Thread.java:662)

In the release. there is some problems to start web explorer. See the description above.

-----

How to make a release with Frascati web explorer :

- Modifiy the class FrascatiService to start the web explorer Frascati version then build the realease.

- delete the old 0.3 versions of the jars who are in /easysoa/serviceRegistry/nxserver/plugins (Otherwise an error occurs when the application starts), keep the 0.4 versions.

- Copy in registry/lib the following jar's :

frascati-web-explorer-bootstrap-1.5-SNAPSHOT.jar
frascati-web-explorer-1.5-SNAPSHOT.jar
frascati-introspection-impl-1.5-SNAPSHOT.jar
commons-fileupload-1.1.1.jar

- Update the following jar frascati-implementation-velocity-1.5-SNAPSHOT.jar ... The required version is one than contains the class ServletImplementationVelocity otherwise a error is throws (ClassNotFoundException).

- Start the release :

There is a problem with the library jsr311-api-1.1.1.jar!/javax/ws/rs/ext/RuntimeDelegate.class =>

Caused by: java.lang.LinkageError: ClassCastException: attempting to castjar:file:/data/home/jguillemotte/EasySOA-Workspace/easysoa/easysoa-distribution/easysoa/serviceRegistry/nxserver/lib/jsr311-api-1.1.1.jar!/javax/ws/rs/ext/RuntimeDelegate.classtojar:file:/data/home/jguillemotte/EasySOA-Workspace/easysoa/easysoa-distribution/easysoa/serviceRegistry/lib/jsr311-api-1.1.1.jar!/javax/ws/rs/ext/RuntimeDelegate.class

Probably because the jaxrs library is already loaded by Nuxeo !? See http://docs.jboss.org/jbossas/guides/j2eeguide/r2/en/html_single/#d0e577

When we try to delete manually the library serviceRegistry/nxserver/lib/jsr311-api-1.1.1.jar : the linkage error disappear but the loading of web explorer is impossible. A new error is throwed : java.net.BindException: Address already in use. See how to change the default address used by jetty in web explorer.