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

Reply via email to