Hi,
In reading the documentation it appears this is supported in the latest releases of the jetty-maven-plugin
However, when running a third party war as the overlay (Openlaszlo Presentation Server), we face the following error:
[INFO] [clean:clean {execution: default-clean}]
[INFO] Deleting directory /Users/echiang/Projects/gliffy/src/release_merge/client/target
[INFO] Preparing jetty:run
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (MacRoman actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /Users/echiang/Projects/gliffy/src/release_merge/client/src/main/resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] No sources to compile
[INFO] [resources:testResources {execution: default-testResources}]
[WARNING] Using platform encoding (MacRoman actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /Users/echiang/Projects/gliffy/src/release_merge/client/src/test/resources
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] No sources to compile
[INFO] [jetty:run {execution: default-cli}]
[INFO] Configuring Jetty for project: Gliffy Clients
[INFO] webAppSourceDirectory /Users/echiang/Projects/gliffy/src/release_merge/client/src/main/webapp does not exist. Defaulting to /Users/echiang/Projects/gliffy/src/release_merge/client/src/main/webapp
[INFO] Reload Mechanic: automatic
[INFO] Classes directory /Users/echiang/Projects/gliffy/src/release_merge/client/target/classes does not exist
[INFO] Context path = /
[INFO] Tmp directory = /Users/echiang/Projects/gliffy/src/release_merge/client/target/tmp
[INFO] Web defaults = org/eclipse/jetty/webapp/webdefault.xml
[INFO] Web overrides = none
[INFO] web.xml file = file:/Users/echiang/Projects/gliffy/src/release_merge/client/src/main/webapp/WEB-INF/web.xml
[INFO] Webapp directory = /Users/echiang/Projects/gliffy/src/release_merge/client/src/main/webapp
[INFO] Starting jetty 8.0.0.M2 ...
2011-02-02 03:40:27.052:INFO::jetty-8.0.0.M2
2011-02-02 03:40:35.540:INFO::Adding overlay: file:/Users/echiang/Projects/gliffy/src/release_merge/client/target/tmp/openlaszlo-4_8_1_war/
2011-02-02 03:40:35.541:INFO::Copying WEB-INF/lib file:/Users/echiang/Projects/gliffy/src/release_merge/client/target/tmp/openlaszlo-4_8_1_war/WEB-INF/lib/ to /Users/echiang/Projects/gliffy/src/release_merge/client/target/tmp/webinf/WEB-INF/lib
2011-02-02 03:40:35.650:INFO::Copying WEB-INF/classes from file:/Users/echiang/Projects/gliffy/src/release_merge/client/target/tmp/openlaszlo-4_8_1_war/WEB-INF/classes/ to /Users/echiang/Projects/gliffy/src/release_merge/client/target/tmp/webinf/WEB-INF/classes
2011-02-02 03:40:37.263:INFO::No Transaction manager found - if your webapp requires one, please configure one.
[INFO] Started Jetty Server
2011-02-02 03:40:45.835:INFO:/:LPS: LPS_HOME is /Users/echiang/Projects/gliffy/src/release_merge/client/target/tmp/webinf
2011-02-02 03:40:45.894:WARN::Error for /gliffy/online/main.lzx
java.lang.ExceptionInInitializerError
at org.openlaszlo.servlets.LZServlet.initLPS(LZServlet.java:108)
at org.openlaszlo.servlets.LZServlet.doGet(LZServlet.java:341)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:546)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:483)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:516)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:230)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:956)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:411)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:188)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:891)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:151)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:114)
at org.eclipse.jetty.server.Server.handle(Server.java:353)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:598)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1059)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:590)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:212)
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:427)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:510)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450)
at java.lang.Thread.run(Thread.java:680)
Caused by:
org.openlaszlo.utils.ChainedException: java.io.FileNotFoundException: /Users/echiang/Projects/gliffy/src/release_merge/client/target/tmp/webinf/WEB-INF/lps/config/lps.properties (No such file or directory)
at org.openlaszlo.server.LPS.loadProperties(LPS.java:512)
at org.openlaszlo.server.LPS.getProperty(LPS.java:527)
at org.openlaszlo.server.LPS.getLocale(LPS.java:553)
at org.openlaszlo.i18n.LaszloMessages.<clinit>(LaszloMessages.java:28)
at org.openlaszlo.servlets.LZServlet.initLPS(LZServlet.java:108)
at org.openlaszlo.servlets.LZServlet.doGet(LZServlet.java:341)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:546)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:483)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:516)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:230)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:956)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:411)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:188)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:891)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:151)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:114)
at org.eclipse.jetty.server.Server.handle(Server.java:353)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:598)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1059)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:590)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:212)
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:427)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:510)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450)
at java.lang.Thread.run(Thread.java:680)
Caused by:
java.io.FileNotFoundException: /Users/echiang/Projects/gliffy/src/release_merge/client/target/tmp/webinf/WEB-INF/lps/config/lps.properties (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at org.openlaszlo.server.LPS.loadProperties(LPS.java:507)
at org.openlaszlo.server.LPS.getProperty(LPS.java:527)
at org.openlaszlo.server.LPS.getLocale(LPS.java:553)
at org.openlaszlo.i18n.LaszloMessages.<clinit>(LaszloMessages.java:28)
at org.openlaszlo.servlets.LZServlet.initLPS(LZServlet.java:108)
at org.openlaszlo.servlets.LZServlet.doGet(LZServlet.java:341)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:546)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:483)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:516)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:230)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:956)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:411)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:188)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:891)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:151)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:114)
at org.eclipse.jetty.server.Server.handle(Server.java:353)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:598)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1059)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:590)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:212)
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:427)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:510)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450)
at java.lang.Thread.run(Thread.java:680)
Here is a snippet of the pom:
<properties>
<lps.version>4.8.1</lps.version>
</properties>
<dependencies>
<dependency>
<groupId>org.openlaszlo</groupId>
<artifactId>openlaszlo-servlet</artifactId>
<version>${lps.version}</version>
<type>war</type>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
<systemProperties>
<systemProperty>
<name>jetty.port</name>
<value>8090</value>
</systemProperty>
</systemProperties>
<webAppConfig>
<contextPath>/</contextPath>
<unpackOverlays>true</unpackOverlays>
</webAppConfig>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
And here is the structure of the resulting target directory:
target
+ tmp
+ - jsp
+ - openlaszlo-servlet-4_8_1_war
+ - webinf
The opelaszlo war is fully extracted in the sub-directory 'openlaszlo-servlet-4_8_1_war' and the resource that is missing can be found in this extracted war.
One thing to note is the classes in the war define the LPS_HOME variable to point to 'webinf' rather than the 'openlaszlo-servlet-4_8_1_war':
2011-02-02 03:40:45.835:INFO:/:LPS: LPS_HOME is /Users/echiang/Projects/gliffy/src/release_merge/client/target/tmp/webinf
Looking at the code, it appears this path is derived by the call to: ServletContext.getRealPath()
Any ideas on why this isn't working?
Thanks,
Eric