Re: build with 'maven war'
Michael Nash <[email protected]>
| Newsgroups | gmane.comp.java.keel.devel |
|---|---|
| Organization | JGlobal Limited |
| Message-ID | <[email protected]> |
Morten: On Mon, 2005-02-28 at 16:38, Morten Norby Larsen wrote: > OK, with the keel plugin 1.2.5 I get the webapp to respond this little > gem: > > org.keel.services.model.ModelException: Cannot find or read > /Library/Java/Home/lib/tools.jar Whoa - that's even more interesting. My understanding was that tools.jar contained things like the compiler, etc. The $24 question is why the heck it's calling that! > Now, the problem is that the Mac implementation of Java doesn't include > the file tools.jar. The classes included in this archive on other > platforms have largely been put in classes.jar - which can be found > here: > > /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/ > Classes/classes.jar > > (I found this useful little piece of knowledge here: > > http://blogs.fivesight.com/pbblog/index.php?p=92 ) > > If it really is necessary to access the physical file, this should > somehow be parameterised. Indeed, but I can't for the life of me imagine why it's needed. I think it's a "leftover" from when we were doing much more complex classloading... The root cause seems to be here... java.lang.Exception: Cannot find or read > /Library/Java/Home/lib/tools.jar > at > org.keel.core.classloader.URLClassLoaderPath.getURLArray(URLClassLoaderP > ath.java:113) > at I believe this is being caused by a few lines of code in KeelStarter that don't even need to be there, so I'm going to try to eliminate them, and thus eliminate this dependency altogether. Thanks for digging into this! Mike > The full stacktrace is here: > > > javax.servlet.ServletException: Exception during model execution: > at > org.keel.clients.struts.ModelAction.execute(ModelAction.java:82) > at > org.apache.struts.action.RequestProcessor.processActionPerform(RequestPr > ocessor.java:421) > at > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java: > 226) > at > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164) > at > org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica > tionFilterChain.java:247) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt > erChain.java:193) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv > e.java:256) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i > nvokeNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: > 480) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv > e.java:191) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i > nvokeNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: > 480) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardContext.invoke(StandardContext.java: > 2417) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java > :180) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i > nvokeNext(StandardPipeline.java:643) > at > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa > lve.java:171) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i > nvokeNext(StandardPipeline.java:641) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java > :172) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i > nvokeNext(StandardPipeline.java:641) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: > 480) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. > java:174) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i > nvokeNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: > 480) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java: > 781) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC > onnection(Http11Protocol.java:549) > at > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java: > 589) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool > .java:666) > at java.lang.Thread.run(Thread.java:552) > > > root cause > org.keel.services.model.ModelException: Cannot find or read > /Library/Java/Home/lib/tools.jar > at > org.keel.clients.direct.KeelClientDirect.execute(KeelClientDirect.java: > 73) > at > org.keel.clients.DefaultClientConnector.execute(DefaultClientConnector.j > ava:51) > at > org.keel.clients.webapp.AbstractWebappClientConnector.execute(AbstractWe > bappClientConnector.java:73) > at > org.keel.clients.struts.StrutsClientConnector.execute(StrutsClientConnec > tor.java:105) > at > org.keel.clients.struts.ModelAction.execute(ModelAction.java:70) > at > org.apache.struts.action.RequestProcessor.processActionPerform(RequestPr > ocessor.java:421) > at > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java: > 226) > at > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164) > at > org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica > tionFilterChain.java:247) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt > erChain.java:193) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv > e.java:256) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i > nvokeNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: > 480) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv > e.java:191) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i > nvokeNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: > 480) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardContext.invoke(StandardContext.java: > 2417) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java > :180) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i > nvokeNext(StandardPipeline.java:643) > at > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa > lve.java:171) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i > nvokeNext(StandardPipeline.java:641) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java > :172) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i > nvokeNext(StandardPipeline.java:641) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: > 480) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. > java:174) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i > nvokeNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: > 480) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java: > 781) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC > onnection(Http11Protocol.java:549) > at > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java: > 589) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool > .java:666) > at java.lang.Thread.run(Thread.java:552) > > ----------------------------------------- > java.lang.Exception: Cannot find or read > /Library/Java/Home/lib/tools.jar > at > org.keel.core.classloader.URLClassLoaderPath.getURLArray(URLClassLoaderP > ath.java:113) > at > org.keel.clients.KeelStarter.createKeelDirectServer(KeelStarter.java: > 70) > at org.keel.clients.KeelStarter.execute(KeelStarter.java:221) > at > org.keel.clients.direct.KeelClientDirect.execute(KeelClientDirect.java: > 70) > at > org.keel.clients.DefaultClientConnector.execute(DefaultClientConnector.j > ava:51) > at > org.keel.clients.webapp.AbstractWebappClientConnector.execute(AbstractWe > bappClientConnector.java:73) > at > org.keel.clients.struts.StrutsClientConnector.execute(StrutsClientConnec > tor.java:105) > at > org.keel.clients.struts.ModelAction.execute(ModelAction.java:70) > at > org.apache.struts.action.RequestProcessor.processActionPerform(RequestPr > ocessor.java:421) > at > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java: > 226) > at > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164) > at > org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica > tionFilterChain.java:247) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt > erChain.java:193) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv > e.java:256) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i > nvokeNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: > 480) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv > e.java:191) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i > nvokeNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: > 480) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardContext.invoke(StandardContext.java: > 2417) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java > :180) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i > nvokeNext(StandardPipeline.java:643) > at > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa > lve.java:171) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i > nvokeNext(StandardPipeline.java:641) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java > :172) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i > nvokeNext(StandardPipeline.java:641) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: > 480) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. > java:174) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i > nvokeNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: > 480) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java: > 781) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC > onnection(Http11Protocol.java:549) > at > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java: > 589) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool > .java:666) > at java.lang.Thread.run(Thread.java:552) > > > > > > > On 28 Feb 2005, at 17:36, Morten Norby Larsen wrote: > > > > > On 28 Feb 2005, at 17:08, Michael Nash wrote: > > > >> Morten: > >> > >> Interesting! I had the same thing happen, and thought it was a fluke. > >> I > >> did a maven clean; maven war, re-deployed again and all was well. > > > > I have just tried that, but it didn't change anything for me. > > > >> > >> Apparently it wasn't a fluke - thanks for the confirmation. The > >> mysterious "do it the second time and it works" bug is real :-) > > > > I made a mistake the first time and ran maven keel instead of maven > > war, and it downloaded a lot of packages (this was after clearing the > > repository). I noticed that one of them was Velocity 1.4. At the end > > it complained that the goal keel wasn't defined. > > > > Then, I ran (without clearing the repo) maven war, and among the > > packages it downloaded was Velocity 1.3.1. If this happens with more > > packages, it could be a possible explanation of the two passes needed > > - but maybe I'm way off, here. > > > > > > Cheers, > > > > Morten > > > > -- > > Morten Norby Larsen [email protected] > > Ludit s.r.l. Phone: +39 02 26 11 72 80 > > Via Battaglia 8, I-20127 Milano, Italy Fax: +39 02 28 46 037 > > > > http://keelframework.org/documentation.shtml > > Keelgroup mailing list > > [email protected] > > http://lists.keelframework.com/listinfo.cgi/keelgroup-keelframework.com > > http://keelframework.org/documentation.shtml Keelgroup mailing list [email protected] http://lists.keelframework.com/listinfo.cgi/keelgroup-keelframework.com