i've looked at tomcat 8 class-and-resource loading logic, and i've seen it is refactored a lot. It is a hard task to adapt the tomcat8 way to tomcat7. - At least for me. I think i will use my hacked version for now. But i'll try trunk when i can.
Thanks for your time, and patience! 2014-07-28 23:25 GMT+02:00 Romain Manni-Bucau <[email protected]>: > Hi > > It works on trunk. > > Sorry i messed up indirectly few things (why it doesnt compile) but should > be fixed in the week. > > It is broken in 1.7 for sure, not sure well be able to fix it in 1.7.0. > Idea would be to use trunk idea adapted to tomcat 7 internals > Le 28 juil. 2014 22:08, "Tamás Kimmel" <[email protected]> a écrit : > > > Should i file an issue, or it is just a known limitation of an > experimental > > function? > > - If you can give some pointers about an acceptable fix, maybe i can > send a > > better patch. > > > > Not related to this bug, but i found another issue with > > webappDefaultConfig. > > javax.servlet annotations does not get processed from WEB-INF/classes > when > > webappDefaultConfig is true. > > For example a class annotated with @WebServlet not started up as a > servlet. > > > > OpenEJBContextConfig.isIncludedIn called with the additionalRepo-based > url > > of the annotated class. This url is not a part of the war, so returns > > false. > > This patch fixes for me: > > > > > https://github.com/kumm/tomee/commit/2d2c33642c4c9b4864b02c0b07d60e2ff177f704 > > > > I can't check these issues on trunk, because it does not compile for me. > > Should it compile? > > > > > > > > > > > > 2014-07-27 17:21 GMT+02:00 Romain Manni-Bucau <[email protected]>: > > > > > true, > > > > > > this is a bug, ie only accepted case ATM is you can find more in > > > WEB-INF/classes than in target/classes > > > > > > > > > Romain Manni-Bucau > > > Twitter: @rmannibucau > > > Blog: http://rmannibucau.wordpress.com/ > > > LinkedIn: http://fr.linkedin.com/in/rmannibucau > > > Github: https://github.com/rmannibucau > > > > > > > > > 2014-07-27 17:09 GMT+02:00 Tamás Kimmel <[email protected]>: > > > > So (after some debug), i found it. > > > > I have a file in my target/classes missing from WEB-INF/classes. > > > > - netbeans puts '.netbeans_automatic_build' into target/classes - > > > > > > > > After the linked change introduced in EmptyDirContext, target/classes > > > > listed, but resources looked up from WEB-INF/classes. > > > > So all files in target/classes have to exist in WEB-INF/classes. > > > > I don't know is it a bug or, is it expected. > > > > > > > > i'll take a look at trunk too, to check this behavior. > > > > > > > > > > > > 2014-07-27 12:23 GMT+02:00 Romain Manni-Bucau <[email protected] > >: > > > > > > > >> well trunk should work with the limitation we only add > target/classes > > > >> etc to existing war to if you remove and it was in war you'll still > > > >> find the resource (shouldn't be a big deal) > > > >> > > > >> about 1.7: url shouldn't be null so I guess the real question is why > > > >> it is null? can be an more important issue hidding the fact we don't > > > >> handle some kind of url > > > >> > > > >> > > > >> Romain Manni-Bucau > > > >> Twitter: @rmannibucau > > > >> Blog: http://rmannibucau.wordpress.com/ > > > >> LinkedIn: http://fr.linkedin.com/in/rmannibucau > > > >> Github: https://github.com/rmannibucau > > > >> > > > >> > > > >> 2014-07-27 12:20 GMT+02:00 Tamás Kimmel <[email protected]>: > > > >> > Thanks, great! > > > >> > Do you mean jsp-development property? i'll take a look at it when > > you > > > >> think > > > >> > it should work. > > > >> > > > > >> > For 1.7.x i think i've found a simple and harmless fix. > > > >> > In OpenEJBContextConfig.processAnnotationsUrl a simple null check > > for > > > >> > currentUrl solve my problem. > > > >> > > > > >> > 524: if (currentUrl == null || NewLoaderLogic.skip(currentUrl)) { > > > >> > > > > >> > The overridden method from catalina does this too, so it seem to > be > > a > > > >> > reasonable fix. > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > 2014-07-26 0:24 GMT+02:00 Romain Manni-Bucau < > [email protected] > > >: > > > >> > > > > >> >> Hi > > > >> >> > > > >> >> didnt look 1.7 (since tag is already done) but trunk should get > > > >> something a > > > >> >> bit different but working > > > >> >> > > > >> >> > > > >> >> > > > >> >> Romain Manni-Bucau > > > >> >> Twitter: @rmannibucau > > > >> >> Blog: http://rmannibucau.wordpress.com/ > > > >> >> LinkedIn: http://fr.linkedin.com/in/rmannibucau > > > >> >> Github: https://github.com/rmannibucau > > > >> >> > > > >> >> > > > >> >> 2014-07-24 23:06 GMT+02:00 Tamás Kimmel <[email protected]>: > > > >> >> > > > >> >> > The regression introduced by > > > >> >> > > > > >> >> > > > > >> >> > > > >> > > > > > > https://github.com/apache/tomee/commit/12d79a50bbd9504cd386aef62d77a5117768812b#diff-13 > > > >> >> > > > > >> >> > Reverting the changes in EmptyDirContext seem to help. > > > >> >> > I don't know (yet) what breaks. > > > >> >> > > > > >> >> > > > > >> >> > 2014-07-24 14:42 GMT+02:00 Tamás Kimmel <[email protected]>: > > > >> >> > > > > >> >> > > only src/main/resources missing, but adding it does not help. > > > >> >> > > > > > >> >> > > I've attached the project. But its really an empty web > project > > > >> created > > > >> >> > > with maven prototype. > > > >> >> > > > > > >> >> > > First i've run into this problem with a complex web project, > > but > > > >> i've > > > >> >> > > realized it can be reproduced with an empty project too. > > > >> >> > > > > > >> >> > > and sorry , > > > >> >> > > s/Last known broken version/First known broken version/ > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > > > > > >> >> > > 2014-07-24 13:48 GMT+02:00 Romain Manni-Bucau < > > > >> [email protected]>: > > > >> >> > > > > > >> >> > > s/mean/miss/ > > > >> >> > >> > > > >> >> > >> > > > >> >> > >> > > > >> >> > >> Romain Manni-Bucau > > > >> >> > >> Twitter: @rmannibucau > > > >> >> > >> Blog: http://rmannibucau.wordpress.com/ > > > >> >> > >> LinkedIn: http://fr.linkedin.com/in/rmannibucau > > > >> >> > >> Github: https://github.com/rmannibucau > > > >> >> > >> > > > >> >> > >> > > > >> >> > >> 2014-07-24 13:37 GMT+02:00 Romain Manni-Bucau < > > > >> [email protected] > > > >> >> >: > > > >> >> > >> > > > >> >> > >> > can mean a folder is missing in your setup > (src/main/webapp > > or > > > >> >> > >> > target/classes) > > > >> >> > >> > > > > >> >> > >> > > > > >> >> > >> > > > > >> >> > >> > > > > >> >> > >> > > > > >> >> > >> > Romain Manni-Bucau > > > >> >> > >> > Twitter: @rmannibucau > > > >> >> > >> > Blog: http://rmannibucau.wordpress.com/ > > > >> >> > >> > LinkedIn: http://fr.linkedin.com/in/rmannibucau > > > >> >> > >> > Github: https://github.com/rmannibucau > > > >> >> > >> > > > > >> >> > >> > > > > >> >> > >> > 2014-07-24 13:35 GMT+02:00 Tamás Kimmel < > [email protected] > > >: > > > >> >> > >> > > > > >> >> > >> > Hi! > > > >> >> > >> >> > > > >> >> > >> >> I know this is an experimental function. > > > >> >> > >> >> I'm just sending a signal, it stopped to work. > > > >> >> > >> >> Last known working version is snapshot at 20140716. > > > >> >> > >> >> Last known broken version is snapshot at 20140722. > > > >> >> > >> >> > > > >> >> > >> >> I get this stacktrace on tomee:run: > > > >> >> > >> >> INFO - Deployed > > > >> >> > >> >> > > > >> >> > >> >> > > > >> >> > >> > > > >> >> > > > > >> >> > > > >> > > > > > > Application(path=/home/kumm/Workspace/_try/mavenwebproject/target/apache-tomee/webapps/mavenwebproject-1.0-SNAPSHOT) > > > >> >> > >> >> SEVERE - ContainerBase.addChild: start: > > > >> >> > >> >> org.apache.catalina.LifecycleException: Failed to start > > > >> component > > > >> >> > >> >> > > > >> >> > >> >> > > > >> >> > >> > > > >> >> > > > > >> >> > > > >> > > > > > > [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/mavenwebproject-1.0-SNAPSHOT]] > > > >> >> > >> >> at > > > >> >> > > > > org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) > > > >> >> > >> >> at > > > >> >> > >> >> > > > >> >> > >> >> > > > >> >> > >> > > > >> >> > > > > >> >> > > > >> > > > > > > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) > > > >> >> > >> >> at > > > >> >> > >> > > > >> >> > > > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) > > > >> >> > >> >> at > > > >> >> > >> > > > >> > org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632) > > > >> >> > >> >> at > > > >> >> > >> > > > >> > org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083) > > > >> >> > >> >> at > > > >> >> > >> >> > > > >> >> > >> > > > >> >> > > > > >> >> > > > >> > > > > > > org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880) > > > >> >> > >> >> at > > > >> >> > >> > > > >> >> > > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > > > >> >> > >> >> at > java.util.concurrent.FutureTask.run(FutureTask.java:262) > > > >> >> > >> >> at > > > >> >> > >> >> > > > >> >> > >> >> > > > >> >> > >> > > > >> >> > > > > >> >> > > > >> > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > > > >> >> > >> >> at > > > >> >> > >> >> > > > >> >> > >> >> > > > >> >> > >> > > > >> >> > > > > >> >> > > > >> > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > > > >> >> > >> >> at java.lang.Thread.run(Thread.java:744) > > > >> >> > >> >> Caused by: java.lang.NullPointerException > > > >> >> > >> >> at > > > >> >> > >> > > > >> > org.apache.openejb.config.NewLoaderLogic.skip(NewLoaderLogic.java:180) > > > >> >> > >> >> at > > > >> >> > >> > > > >> > org.apache.openejb.config.NewLoaderLogic.skip(NewLoaderLogic.java:176) > > > >> >> > >> >> at > > > >> >> > >> >> > > > >> >> > >> >> > > > >> >> > >> > > > >> >> > > > > >> >> > > > >> > > > > > > org.apache.tomee.catalina.OpenEJBContextConfig.processAnnotationsUrl(OpenEJBContextConfig.java:524) > > > >> >> > >> >> at > > > >> >> > >> >> > > > >> >> > >> >> > > > >> >> > >> > > > >> >> > > > > >> >> > > > >> > > > > > > org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1298) > > > >> >> > >> >> at > > > >> >> > >> >> > > > >> >> > >> >> > > > >> >> > >> > > > >> >> > > > > >> >> > > > >> > > > > > > org.apache.tomee.catalina.OpenEJBContextConfig.webConfig(OpenEJBContextConfig.java:366) > > > >> >> > >> >> at > > > >> >> > >> >> > > > >> >> > >> >> > > > >> >> > >> > > > >> >> > > > > >> >> > > > >> > > > > > > org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876) > > > >> >> > >> >> at > > > >> >> > >> >> > > > >> >> > >> >> > > > >> >> > >> > > > >> >> > > > > >> >> > > > >> > > > > > > org.apache.tomee.catalina.OpenEJBContextConfig.configureStart(OpenEJBContextConfig.java:115) > > > >> >> > >> >> at > > > >> >> > >> >> > > > >> >> > >> >> > > > >> >> > >> > > > >> >> > > > > >> >> > > > >> > > > > > > org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:374) > > > >> >> > >> >> at > > > >> >> > >> >> > > > >> >> > >> >> > > > >> >> > >> > > > >> >> > > > > >> >> > > > >> > > > > > > org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) > > > >> >> > >> >> at > > > >> >> > >> >> > > > >> >> > >> >> > > > >> >> > >> > > > >> >> > > > > >> >> > > > >> > > > > > > org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) > > > >> >> > >> >> at > > > >> >> > >> >> > > > >> >> > >> >> > > > >> >> > >> > > > >> >> > > > > >> >> > > > >> > > > > > > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5355) > > > >> >> > >> >> at > > > >> >> > > > > org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > > > >> >> > >> >> ... 10 more > > > >> >> > >> >> SEVERE - Error deploying web application archive > > > >> >> > >> >> > > > >> >> > >> >> > > > >> >> > >> > > > >> >> > > > > >> >> > > > >> > > > > > > /home/kumm/Workspace/_try/mavenwebproject/target/apache-tomee/webapps/mavenwebproject-1.0-SNAPSHOT.war > > > >> >> > >> >> > > > >> >> > >> >> My test project is an empty maven web project created by > > > maven > > > >> >> > >> >> archetype:generate. > > > >> >> > >> >> ( mvn -DarchetypeGroupId=org.codehaus.mojo.archetypes > > > >> >> > >> >> -DarchetypeArtifactId=webapp-javaee6 > -DarchetypeVersion=1.5 > > > >> >> > >> >> -DgroupId=com.acme -DartifactId=mavenwebproject > > > >> >> > -Dversion=1.0-SNAPSHOT > > > >> >> > >> >> -Dpackage=com.acme Dbasedir=/home/kumm/Workspace/_try > > > >> >> > >> archetype:generate ) > > > >> >> > >> >> > > > >> >> > >> >> plugin in pom.xml: > > > >> >> > >> >> <plugin> > > > >> >> > >> >> > <groupId>org.apache.openejb.maven</groupId> > > > >> >> > >> >> > <artifactId>tomee-maven-plugin</artifactId> > > > >> >> > >> >> <version>1.7.0-SNAPSHOT</version> > > > >> >> > >> >> <configuration> > > > >> >> > >> >> > > > >> <tomeeClassifier>webprofile</tomeeClassifier> > > > >> >> > >> >> <simpleLog>true</simpleLog> > > > >> >> > >> >> > > > >> <webappDefaultConfig>true</webappDefaultConfig> > > > >> >> > >> >> </configuration> > > > >> >> > >> >> </plugin> > > > >> >> > >> >> > > > >> >> > >> >> Without line > > > "<webappDefaultConfig>true</webappDefaultConfig>" > > > >> >> > >> everything > > > >> >> > >> >> works as expected. > > > >> >> > >> >> > > > >> >> > >> > > > > >> >> > >> > > > > >> >> > >> > > > >> >> > > > > > >> >> > > > > > >> >> > > > > >> >> > > > >> > > > > > >
