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 >>> >>> >>> >> >> > >
