Really great feedback! Sharing your experience on e.g. twitter would be good advertisement for us! ;)
2017-11-06 21:33 GMT+01:00 Romain Manni-Bucau <[email protected]>: > Wow, this is a great feedback, thanks for taking time to do that, > really appreciated and happy you like it! > > Romain Manni-Bucau > @rmannibucau | Blog | Old Blog | Github | LinkedIn > > > 2017-11-06 21:24 GMT+01:00 Aaron Anderson <[email protected]>: > > Thanks again for your assistance. Adding the tomcat-websocket dependency > to > > my runner project fixed the websocket warning. I was able to solve the > > eclipse validation issue by creating a meecrowave.properties file > including > > the line: > > scanning-package-exclude=org.eclipse.persistence > > > > Besides the missing validation dependency the new eclipselink version > > includes a bunch of JPA REST endpoints I had no interest in deploying. I > now > > have a custom runner project that shades the meecrowave-core project > along > > with my other common runtime dependencies and a separate trimmed down > > application war file that is running fine. > > > > I am very pleased with the results and efficiency of Meecrowave! I am > > working on a client side application and instead of building a native > client > > using JavaFX I am trying to build a minimal local web server using JAX-RS > > and the Google Polymer web component framework. I originally built the > > application using WildFly Swarm but the resulting single jar file was > almost > > 140MB. Since I want to support version checks and automatic update > downloads > > the file size was concerning. Now with Meecrowave I have all of the same > > functionality plus a 24MB runner that I can update independently from a > 12MB > > application that are much more manageable to update. > > > > Once I get my application working I will share a basic outline of it on > > Github. > > > > Thanks for the quality work! > > > > Aaron > > > > > > > > > > On Monday, November 6, 2017 1:19 PM, Romain Manni-Bucau > > <[email protected]> wrote: > > > > > > 2017-11-06 18:55 GMT+01:00 Aaron Anderson <[email protected]>: > >> Thanks for your help! The class not found exception issue was due to my > >> war > >> file containing a dependency on eclipselink which indirectly references > a > >> bean validation class. Removing that library fixed the exception. I > tried > >> to > >> add the validation library to my war file but that did not help. The > >> problem > >> appears to be due to the runner where CXF is located and the war file > >> having > >> different classloaders. I am testing to see if I can create a custom or > >> shaded runner containing the tomcat websocket library, eclipselink, and > >> the > >> bean validation library to see if that fixes my problem. I suppose I > could > >> add the libraries to the runner classpath but I am looking for a 1 or 2 > >> jar > >> solution. > > > > I do a shade with it so it sounds doable. meecrowave:bundle also works > > well and is saner for prod deployments in general. > > > >> > >> On that topic I tried to create a shaded war file but the dependencies > >> were > >> included in both the WEB-INF/lib directory and as shaded classes. Is a > fat > >> war supported? I have only seen examples of fat jars. > >> > > > > It should if you put at the root of the war all the runner classes and > > keep the standard war structure. Pitfall: all the classes are > > available as web resources which is not something you wish probably. > > You can workaround it with some tomcat web resource tuning in > > context.xml but not sure the gain is huge enough to justify it. > > > >> Thanks! > >> > >> > >> > >> > >> On Monday, November 6, 2017 9:59 AM, Romain Manni-Bucau > >> <[email protected]> wrote: > >> > >> > >> Did you run on java 9? > >> > >> Also we don't include the websocket support by default, add this > >> dependency: > >> > >> <dependency> > >> <groupId>org.apache.tomcat</groupId> > >> <artifactId>tomcat-websocket</artifactId> > >> <version>${tomcat.version}</version> > >> </dependency> > >> > >> Romain Manni-Bucau > >> @rmannibucau | Blog | Old Blog | Github | LinkedIn > >> > >> > >> 2017-11-06 16:30 GMT+01:00 Aaron Anderson <[email protected]>: > >>> Thanks, I checked out the master branch and I no longer receive this > >>> error > >>> when using the 1.2.0-SNAPSHOT runner version. However, I am getting a > >>> different error now [1]. It looks like the JSR 303 bean validation > >>> library > >>> is not on the runner classpath. My application does not depend on this > >>> interface so it must be a CFX dependency problem. > >>> > >>> Also I received some warnings about missing websocket classes: > >>> > >>> [09:06:36.373][WARN ][ main][nner.AbstractMetaDataDiscovery] > >>> Ignoring class [myapp.ws.JsonDecoder] because it could not be loaded: > >>> java.lang.NoClassDefFoundError: javax/websocket/Decoder$TextStream > >>> [09:06:36.375][WARN ][ main][nner.AbstractMetaDataDiscovery] > >>> Ignoring class [myapp.ws.WebWS] because it could not be loaded: > >>> java.lang.NoClassDefFoundError: Ljavax/websocket/Session; > >>> > >>> WebSocket support should be included in Tomcat 9 by default. > >>> > >>> Are these known issues with the master branch? > >>> > >>> Thanks! > >>> > >>> > >>> 1: > >>> [09:06:36.776][INFO ][ main][.webbeans.config.BeansDeployer] > All > >>> injection points were validated successfully. > >>> [09:06:36.939][INFO ][ main][apache.cxf.endpoint.ServerImpl] > >>> Setting the server's publish address to be /rs > >>> [09:06:36.969][ERROR][ main][.WebBeansConfigurationListener] > An > >>> error occurred while starting application context path : [] > >>> [09:06:36.970][ERROR][ main][he.catalina.core.ContainerBase] > >>> ContainerBase.addChild: start: > >>> org.apache.catalina.LifecycleException: Failed to start component > >>> [StandardEngine[Tomcat].StandardHost[localhost].[]] > >>> at > >>> > >>> > >>> org.apache.catalina.util.LifecycleBase.handleSubClassException( > LifecycleBase.java:441) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at org.apache.catalina.util.LifecycleBase.start( > LifecycleBase.java:198) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.catalina.core.ContainerBase.addChildInternal( > ContainerBase.java:740) > >>> [meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> org.apache.catalina.core.ContainerBase.addChild( > ContainerBase.java:716) > >>> [meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at org.apache.catalina.core.StandardHost.addChild( > StandardHost.java:703) > >>> [meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at org.apache.meecrowave.Meecrowave.deployWebapp(Meecrowave.java:349) > >>> [meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at org.apache.meecrowave.Meecrowave.deployWebapp(Meecrowave.java:202) > >>> [meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at org.apache.meecrowave.runner.Cli.run(Cli.java:73) > >>> [meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at org.apache.meecrowave.runner.Cli.main(Cli.java:84) > >>> [meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> Caused by: org.apache.webbeans.exception.WebBeansDeploymentException: > >>> Error > >>> while sending SystemEvent to a CDI Extension! > >>> > >>> > >>> org.apache.webbeans.portable.events.discovery. > AfterDeploymentValidationImpl@48b3b1b8 > >>> at > >>> > >>> > >>> org.apache.webbeans.event.NotificationManager.fireEvent( > NotificationManager.java:749) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.container.BeanManagerImpl.fireEvent( > BeanManagerImpl.java:494) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.container.BeanManagerImpl.fireLifecycleEvent( > BeanManagerImpl.java:489) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.config.BeansDeployer. > fireAfterDeploymentValidationEvent(BeansDeployer.java:848) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> org.apache.webbeans.config.BeansDeployer.deploy( > BeansDeployer.java:345) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.lifecycle.AbstractLifeCycle.bootstrapApplication( > AbstractLifeCycle.java:137) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.lifecycle.AbstractLifeCycle.startApplication( > AbstractLifeCycle.java:103) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.web.lifecycle.WebContainerLifecycle. > startApplication(WebContainerLifecycle.java:98) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.servlet.WebBeansConfigurationListener. > contextInitialized(WebBeansConfigurationListener.java:85) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.meecrowave.openwebbeans.OWBAutoSetup$EagerBootListener. > doContextInitialized(OWBAutoSetup.java:80) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.meecrowave.openwebbeans.OWBAutoSetup$ > EagerBootListener.access$100(OWBAutoSetup.java:61) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.meecrowave.openwebbeans.OWBAutoSetup. > onStartup(OWBAutoSetup.java:57) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.meecrowave.Meecrowave.lambda$deployWebapp$9(Meecrowave. > java:260) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.catalina.core.StandardContext.startInternal( > StandardContext.java:5094) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at org.apache.catalina.util.LifecycleBase.start( > LifecycleBase.java:183) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> ... 7 more > >>> Caused by: org.apache.webbeans.exception.WebBeansException: > >>> java.lang.NoClassDefFoundError: javax/validation/ValidationException > >>> at > >>> > >>> > >>> org.apache.webbeans.event.ObserverMethodImpl.notify( > ObserverMethodImpl.java:371) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.event.NotificationManager.invokeObserverMethod( > NotificationManager.java:832) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.event.NotificationManager.fireEvent( > NotificationManager.java:732) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.container.BeanManagerImpl.fireEvent( > BeanManagerImpl.java:494) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.container.BeanManagerImpl.fireLifecycleEvent( > BeanManagerImpl.java:489) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.config.BeansDeployer. > fireAfterDeploymentValidationEvent(BeansDeployer.java:848) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> org.apache.webbeans.config.BeansDeployer.deploy( > BeansDeployer.java:345) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.lifecycle.AbstractLifeCycle.bootstrapApplication( > AbstractLifeCycle.java:137) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.lifecycle.AbstractLifeCycle.startApplication( > AbstractLifeCycle.java:103) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.web.lifecycle.WebContainerLifecycle. > startApplication(WebContainerLifecycle.java:98) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.servlet.WebBeansConfigurationListener. > contextInitialized(WebBeansConfigurationListener.java:85) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.meecrowave.openwebbeans.OWBAutoSetup$EagerBootListener. > doContextInitialized(OWBAutoSetup.java:80) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.meecrowave.openwebbeans.OWBAutoSetup$ > EagerBootListener.access$100(OWBAutoSetup.java:61) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.meecrowave.openwebbeans.OWBAutoSetup. > onStartup(OWBAutoSetup.java:57) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.meecrowave.Meecrowave.lambda$deployWebapp$9(Meecrowave. > java:260) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.catalina.core.StandardContext.startInternal( > StandardContext.java:5094) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at org.apache.catalina.util.LifecycleBase.start( > LifecycleBase.java:183) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> ... 7 more > >>> Caused by: java.lang.NoClassDefFoundError: > >>> javax/validation/ValidationException > >>> at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:1.8.0_151] > >>> at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) > >>> ~[?:1.8.0_151] > >>> at java.lang.Class.privateGetPublicMethods(Class.java:2902) > >>> ~[?:1.8.0_151] > >>> at java.lang.Class.getMethods(Class.java:1615) ~[?:1.8.0_151] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.model.AbstractResourceInfo. > findContextSetterMethods(AbstractResourceInfo.java:221) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.model.AbstractResourceInfo.findContexts( > AbstractResourceInfo.java:86) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.model.AbstractResourceInfo.<init>( > AbstractResourceInfo.java:79) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at org.apache.cxf.jaxrs.model.ProviderInfo.<init>( > ProviderInfo.java:53) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at org.apache.cxf.jaxrs.model.ProviderInfo.<init>( > ProviderInfo.java:38) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at org.apache.cxf.jaxrs.model.ProviderInfo.<init>( > ProviderInfo.java:34) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.provider.ProviderFactory.prepareProviders( > ProviderFactory.java:1303) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.provider.ServerProviderFactory.setProviders( > ServerProviderFactory.java:240) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.provider.ProviderFactory.setBusProviders( > ProviderFactory.java:531) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.provider.ServerProviderFactory.createInstance( > ServerProviderFactory.java:125) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.setupFactory( > JAXRSServerFactoryBean.java:240) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create( > JAXRSServerFactoryBean.java:182) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.init( > JAXRSServerFactoryBean.java:143) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.cdi.JAXRSCdiResourceExtension.load( > JAXRSCdiResourceExtension.java:157) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >>> ~[?:1.8.0_151] > >>> at > >>> > >>> > >>> sun.reflect.NativeMethodAccessorImpl.invoke( > NativeMethodAccessorImpl.java:62) > >>> ~[?:1.8.0_151] > >>> at > >>> > >>> > >>> sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43) > >>> ~[?:1.8.0_151] > >>> at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151] > >>> at > >>> > >>> > >>> org.apache.webbeans.event.ObserverMethodImpl.invoke( > ObserverMethodImpl.java:404) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.event.ContainerEventObserverMethodImpl.invoke( > ContainerEventObserverMethodImpl.java:85) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.event.ObserverMethodImpl.notify( > ObserverMethodImpl.java:365) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.event.NotificationManager.invokeObserverMethod( > NotificationManager.java:832) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.event.NotificationManager.fireEvent( > NotificationManager.java:732) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.container.BeanManagerImpl.fireEvent( > BeanManagerImpl.java:494) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.container.BeanManagerImpl.fireLifecycleEvent( > BeanManagerImpl.java:489) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.config.BeansDeployer. > fireAfterDeploymentValidationEvent(BeansDeployer.java:848) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> org.apache.webbeans.config.BeansDeployer.deploy( > BeansDeployer.java:345) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.lifecycle.AbstractLifeCycle.bootstrapApplication( > AbstractLifeCycle.java:137) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.lifecycle.AbstractLifeCycle.startApplication( > AbstractLifeCycle.java:103) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.web.lifecycle.WebContainerLifecycle. > startApplication(WebContainerLifecycle.java:98) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.servlet.WebBeansConfigurationListener. > contextInitialized(WebBeansConfigurationListener.java:85) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.meecrowave.openwebbeans.OWBAutoSetup$EagerBootListener. > doContextInitialized(OWBAutoSetup.java:80) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.meecrowave.openwebbeans.OWBAutoSetup$ > EagerBootListener.access$100(OWBAutoSetup.java:61) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.meecrowave.openwebbeans.OWBAutoSetup. > onStartup(OWBAutoSetup.java:57) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.meecrowave.Meecrowave.lambda$deployWebapp$9(Meecrowave. > java:260) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.catalina.core.StandardContext.startInternal( > StandardContext.java:5094) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at org.apache.catalina.util.LifecycleBase.start( > LifecycleBase.java:183) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> ... 7 more > >>> Caused by: java.lang.ClassNotFoundException: > >>> javax.validation.ValidationException > >>> at java.net.URLClassLoader.findClass(URLClassLoader.java:381) > >>> ~[?:1.8.0_151] > >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > ~[?:1.8.0_151] > >>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) > >>> ~[?:1.8.0_151] > >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > ~[?:1.8.0_151] > >>> at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:1.8.0_151] > >>> at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) > >>> ~[?:1.8.0_151] > >>> at java.lang.Class.privateGetPublicMethods(Class.java:2902) > >>> ~[?:1.8.0_151] > >>> at java.lang.Class.getMethods(Class.java:1615) ~[?:1.8.0_151] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.model.AbstractResourceInfo. > findContextSetterMethods(AbstractResourceInfo.java:221) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.model.AbstractResourceInfo.findContexts( > AbstractResourceInfo.java:86) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.model.AbstractResourceInfo.<init>( > AbstractResourceInfo.java:79) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at org.apache.cxf.jaxrs.model.ProviderInfo.<init>( > ProviderInfo.java:53) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at org.apache.cxf.jaxrs.model.ProviderInfo.<init>( > ProviderInfo.java:38) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at org.apache.cxf.jaxrs.model.ProviderInfo.<init>( > ProviderInfo.java:34) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.provider.ProviderFactory.prepareProviders( > ProviderFactory.java:1303) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.provider.ServerProviderFactory.setProviders( > ServerProviderFactory.java:240) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.provider.ProviderFactory.setBusProviders( > ProviderFactory.java:531) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.provider.ServerProviderFactory.createInstance( > ServerProviderFactory.java:125) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.setupFactory( > JAXRSServerFactoryBean.java:240) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create( > JAXRSServerFactoryBean.java:182) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.init( > JAXRSServerFactoryBean.java:143) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.cxf.cdi.JAXRSCdiResourceExtension.load( > JAXRSCdiResourceExtension.java:157) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >>> ~[?:1.8.0_151] > >>> at > >>> > >>> > >>> sun.reflect.NativeMethodAccessorImpl.invoke( > NativeMethodAccessorImpl.java:62) > >>> ~[?:1.8.0_151] > >>> at > >>> > >>> > >>> sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43) > >>> ~[?:1.8.0_151] > >>> at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151] > >>> at > >>> > >>> > >>> org.apache.webbeans.event.ObserverMethodImpl.invoke( > ObserverMethodImpl.java:404) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.event.ContainerEventObserverMethodImpl.invoke( > ContainerEventObserverMethodImpl.java:85) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.event.ObserverMethodImpl.notify( > ObserverMethodImpl.java:365) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.event.NotificationManager.invokeObserverMethod( > NotificationManager.java:832) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.event.NotificationManager.fireEvent( > NotificationManager.java:732) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.container.BeanManagerImpl.fireEvent( > BeanManagerImpl.java:494) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.container.BeanManagerImpl.fireLifecycleEvent( > BeanManagerImpl.java:489) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.config.BeansDeployer. > fireAfterDeploymentValidationEvent(BeansDeployer.java:848) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> org.apache.webbeans.config.BeansDeployer.deploy( > BeansDeployer.java:345) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.lifecycle.AbstractLifeCycle.bootstrapApplication( > AbstractLifeCycle.java:137) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.lifecycle.AbstractLifeCycle.startApplication( > AbstractLifeCycle.java:103) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.web.lifecycle.WebContainerLifecycle. > startApplication(WebContainerLifecycle.java:98) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.webbeans.servlet.WebBeansConfigurationListener. > contextInitialized(WebBeansConfigurationListener.java:85) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.meecrowave.openwebbeans.OWBAutoSetup$EagerBootListener. > doContextInitialized(OWBAutoSetup.java:80) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.meecrowave.openwebbeans.OWBAutoSetup$ > EagerBootListener.access$100(OWBAutoSetup.java:61) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.meecrowave.openwebbeans.OWBAutoSetup. > onStartup(OWBAutoSetup.java:57) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.meecrowave.Meecrowave.lambda$deployWebapp$9(Meecrowave. > java:260) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at > >>> > >>> > >>> org.apache.catalina.core.StandardContext.startInternal( > StandardContext.java:5094) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> at org.apache.catalina.util.LifecycleBase.start( > LifecycleBase.java:183) > >>> ~[meecrowave-core-1.2.0-SNAPSHOT-runner.jar:1.2.0-SNAPSHOT] > >>> ... 7 more > >>> [09:06:36.976][INFO ][ main][oyote.http11.Http11NioProtocol] > >>> Pausing ProtocolHandler ["http-nio-8080"] > >>> [09:06:37.029][INFO ][ main][.catalina.core.StandardService] > >>> Stopping service [Tomcat] > >>> [09:06:37.030][INFO ][ main][oyote.http11.Http11NioProtocol] > >>> Stopping ProtocolHandler ["http-nio-8080"] > >>> [09:06:37.032][INFO ][ main][oyote.http11.Http11NioProtocol] > >>> Destroying ProtocolHandler ["http-nio-8080"] > >>> [09:06:37.037][WARN ][ main][a.loader.WebappClassLoaderBase] > The > >>> web application [ROOT] registered the JDBC driver > >>> [org.apache.derby.jdbc.AutoloadedDriver] but failed to unregister it > when > >>> the web application was stopped. To prevent a memory leak, the JDBC > >>> Driver > >>> has been forcibly unregistered. > >>> Exception in thread "main" java.lang.IllegalStateException: > >>> ContainerBase.addChild: start: org.apache.catalina.LifecycleException: > >>> Failed to start component > >>> [StandardEngine[Tomcat].StandardHost[localhost].[]] > >>> at > >>> > >>> > >>> org.apache.catalina.core.ContainerBase.addChildInternal( > ContainerBase.java:744) > >>> at > >>> org.apache.catalina.core.ContainerBase.addChild( > ContainerBase.java:716) > >>> at org.apache.catalina.core.StandardHost.addChild( > StandardHost.java:703) > >>> at org.apache.meecrowave.Meecrowave.deployWebapp(Meecrowave.java:349) > >>> at org.apache.meecrowave.Meecrowave.deployWebapp(Meecrowave.java:202) > >>> at org.apache.meecrowave.runner.Cli.run(Cli.java:73) > >>> at org.apache.meecrowave.runner.Cli.main(Cli.java:84) > >>> > >>> > >>> > >>> On Sunday, November 5, 2017 11:59 PM, Romain Manni-Bucau > >>> <[email protected]> wrote: > >>> > >>> > >>> Hi > >>> > >>> It is a fixed (on master) bug due to log4j 2 which introduced java 9 > >>> code. > >>> Adding to the runner a *package exclusion* of "META-INF" should > >>> workaround > >>> the issue. This is doable through the CLI if i recall correctly. > >>> > >>> > >>> > >>> Le 6 nov. 2017 02:31, "Aaron Anderson" <[email protected]> a > écrit : > >>> > >>> I tried to run the Meecrowave runner on a simple test war file > generated > >>> using the maven archetype utility: > >>> > >>> java -jar meecrowave-core-1.1.0-runner. jar --webapp testwar.war > >>> > >>> > >>> and I received the following stack trace: > >>> > >>> [19:02:55.973][INFO ][ main][g.apache.meecrowave. Meecrowave] > >>> --------------- http://localhost:8080 > >>> [19:02:56.143][ERROR][ main][he.catalina.core. ContainerBase] > >>> ContainerBase.addChild: start: > >>> org.apache.catalina. LifecycleException: Failed to start component > >>> [StandardEngine[Tomcat]. StandardHost[localhost].[]] > >>> at org.apache.catalina.util. LifecycleBase. handleSubClassException( > >>> LifecycleBase.java:441) ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> at org.apache.catalina.util. LifecycleBase.start( > LifecycleBase.java:198) > >>> ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> at org.apache.catalina.core. ContainerBase. addChildInternal( > >>> ContainerBase.java:740) [meecrowave-core-1.1.0-runner. jar:1.1.0] > >>> at org.apache.catalina.core. ContainerBase.addChild( > >>> ContainerBase.java:716) > >>> [meecrowave-core-1.1.0-runner. jar:1.1.0] > >>> at org.apache.catalina.core. StandardHost.addChild( > >>> StandardHost.java:703) > >>> [meecrowave-core-1.1.0-runner. jar:1.1.0] > >>> at org.apache.meecrowave. Meecrowave.deployWebapp( Meecrowave.java:349) > >>> [meecrowave-core-1.1.0-runner. jar:1.1.0] > >>> at org.apache.meecrowave. Meecrowave.deployWebapp( Meecrowave.java:202) > >>> [meecrowave-core-1.1.0-runner. jar:1.1.0] > >>> at org.apache.meecrowave.runner. Cli.run(Cli.java:73) > >>> [meecrowave-core-1.1.0-runner. jar:1.1.0] > >>> at org.apache.meecrowave.runner. Cli.main(Cli.java:84) > >>> [meecrowave-core-1.1.0-runner. jar:1.1.0] > >>> Caused by: org.apache.webbeans.exception. WebBeansDeploymentException: > >>> java.lang. IllegalArgumentException > >>> at org.apache.webbeans.corespi. scanner. AbstractMetaDataDiscovery. > scan( > >>> AbstractMetaDataDiscovery. java:157) ~[meecrowave-core-1.1.0- > >>> runner.jar:1.1.0] > >>> at org.apache.meecrowave. openwebbeans. OWBTomcatWebScannerService. > scan( > >>> OWBTomcatWebScannerService. java:131) ~[meecrowave-core-1.1.0- > >>> runner.jar:1.1.0] > >>> at org.apache.catalina.startup. MeecrowaveContextConfig. webConfig( > >>> MeecrowaveContextConfig.java: 108) ~[meecrowave-core-1.1.0- > >>> runner.jar:1.1.0] > >>> at org.apache.catalina.startup. ContextConfig.configureStart( > >>> ContextConfig.java:775) ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> at org.apache.catalina.startup. ContextConfig.lifecycleEvent( > >>> ContextConfig.java:299) ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> at org.apache.catalina.startup. MeecrowaveContextConfig. > lifecycleEvent( > >>> MeecrowaveContextConfig.java: 133) ~[meecrowave-core-1.1.0- > >>> runner.jar:1.1.0] > >>> at org.apache.catalina.util. LifecycleBase. fireLifecycleEvent( > >>> LifecycleBase.java:123) ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> at org.apache.catalina.core. StandardContext.startInternal( > >>> StandardContext.java:5003) ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> at org.apache.catalina.util. LifecycleBase.start( > LifecycleBase.java:183) > >>> ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> ... 7 more > >>> Caused by: java.lang. IllegalArgumentException > >>> at org.apache.xbean.asm5. ClassReader.<init>(Unknown Source) > >>> ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> at org.apache.xbean.asm5. ClassReader.<init>(Unknown Source) > >>> ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> at org.apache.xbean.asm5. ClassReader.<init>(Unknown Source) > >>> ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> at org.apache.xbean.finder. AnnotationFinder.readClassDef( > >>> AnnotationFinder.java:1169) ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> at org.apache.xbean.finder. AnnotationFinder.<init>( > >>> AnnotationFinder.java:147) ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> at org.apache.xbean.finder. AnnotationFinder.<init>( > >>> AnnotationFinder.java:160) ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> at org.apache.webbeans.corespi. scanner.xbean. > >>> OwbAnnotationFinder.<init>( > >>> OwbAnnotationFinder.java:37) ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> at org.apache.webbeans.corespi. scanner. AbstractMetaDataDiscovery. > >>> initFinder( AbstractMetaDataDiscovery. java:114) > ~[meecrowave-core-1.1.0- > >>> runner.jar:1.1.0] > >>> at org.apache.webbeans.corespi. scanner. AbstractMetaDataDiscovery. > scan( > >>> AbstractMetaDataDiscovery. java:153) ~[meecrowave-core-1.1.0- > >>> runner.jar:1.1.0] > >>> at org.apache.meecrowave. openwebbeans. OWBTomcatWebScannerService. > scan( > >>> OWBTomcatWebScannerService. java:131) ~[meecrowave-core-1.1.0- > >>> runner.jar:1.1.0] > >>> at org.apache.catalina.startup. MeecrowaveContextConfig. webConfig( > >>> MeecrowaveContextConfig.java: 108) ~[meecrowave-core-1.1.0- > >>> runner.jar:1.1.0] > >>> at org.apache.catalina.startup. ContextConfig.configureStart( > >>> ContextConfig.java:775) ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> at org.apache.catalina.startup. ContextConfig.lifecycleEvent( > >>> ContextConfig.java:299) ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> at org.apache.catalina.startup. MeecrowaveContextConfig. > lifecycleEvent( > >>> MeecrowaveContextConfig.java: 133) ~[meecrowave-core-1.1.0- > >>> runner.jar:1.1.0] > >>> at org.apache.catalina.util. LifecycleBase. fireLifecycleEvent( > >>> LifecycleBase.java:123) ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> at org.apache.catalina.core. StandardContext.startInternal( > >>> StandardContext.java:5003) ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> at org.apache.catalina.util. LifecycleBase.start( > LifecycleBase.java:183) > >>> ~[meecrowave-core-1.1.0- runner.jar:1.1.0] > >>> ... 7 more > >>> [19:02:56.150][INFO ][ main][oyote.http11. Http11NioProtocol] > >>> Pausing ProtocolHandler ["http-nio-8080"] > >>> [19:02:56.204][INFO ][ main][.catalina.core. StandardService] > >>> Stopping service [Tomcat] > >>> [19:02:56.206][INFO ][ main][oyote.http11. Http11NioProtocol] > >>> Stopping ProtocolHandler ["http-nio-8080"] > >>> [19:02:56.208][INFO ][ main][oyote.http11. Http11NioProtocol] > >>> Destroying ProtocolHandler ["http-nio-8080"] > >>> > >>> > >>> I receive this same asm5 error from the runner on every war file I > >>> attempt > >>> to start on both windows and linux using JDK 9 and JDK 8. Does > Meecrowave > >>> support loading standard JavaEE war files including Java Servlets or > does > >>> it > >>> only exclusively support JAX-RS applications? Am I missing required > >>> parameters for the runner? > >>> > >>> I also tried to enable debug logging on Meecrowave and Tomcat using > >>> various > >>> log4j2.properties file formats to no avail. What is the process for > >>> enabling > >>> debug logging using the CLI runner? > >>> > >>> Thanks, > >>> > >>> Aaron > >>> > >>> > >>> > >> > >> > > > > >
