我正在使用Jetty 8.1.4.v20120524和Maven 3.我的pom中有以下配置:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.4.v20120524</version>
<configuration>
<jettyXml>${project.basedir}/src/main/resources/jetty.xml</jettyXml>
</configuration>
</plugin>
在我的jetty.xml中,我定义了一个上下文:
<Set name="handler">
<New class="org.eclipse.jetty.server.handler.HandlerList">
<Set name="handlers">
<Array type="org.eclipse.jetty.server.Handler">
<Item>
<New class="org.eclipse.jetty.server.handler.ResourceHandler">
<Set name="welcomeFiles">
<Array type="String"><Item>index.xml,index.xhtml,index.html</Item></Array>
</Set>
</New>
</Item>
<Item>
<New id="Contexts" class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="resourceBase"><SystemProperty name="jetty.home" default="src/main/webapp" /></Set>
<Set name="contextPath">/</Set>
</New>
</Item>
</Array>
</Set>
</New>
</Set>
这可以按预期工作,并在/:
启动我的应用程序INFO:oejs.Server:jetty-8.1.4.v20120524
INFO:oejsh.ContextHandler:started o.e.j.w.WebAppContext{/,file:/<MY_DIRECTORY>/src/main/webapp/}
INFO:oejsh.ContextHandler:started o.e.j.w.WebAppContext{/,file:/<MY_DIRECTORY>/src/main/webapp/}
然而,在此之后,jetty-maven-plugin似乎试图启动一个默认上下文,它在找不到类时失败 - 它也试图绑定到“/”,这显然是我不想要的。
WARN:oejs.Holder:java.lang.ClassNotFoundException: org.basex.http.rest.RESTServlet
INFO:oejpw.PlusConfiguration:No Transaction manager found - if your webapp requires one, please configure one.
INFO:oejsh.ContextHandler:started o.m.j.p.JettyWebAppContext{/,file:/<MY_DIRECTORY>/src/main/webapp/},file:/<MY_DIRECTORY>/src/main/webapp/
INFO:oejsh.ContextHandler:started o.m.j.p.JettyWebAppContext{/,file:/<MY_DIRECTORY>/src/main/webapp/},file:/<MY_DIRECTORY>/src/main/webapp/
INFO:oejsh.ContextHandler:started o.m.j.p.JettyWebAppContext{/,file:/<MY_DIRECTORY>/src/main/webapp/},file:/<MY_DIRECTORY>/src/main/webapp/
如何停止启动此上下文?非常感谢任何帮助。
答案 0 :(得分:1)
根据Jan Bartel在邮件列表(http://dev.eclipse.org/mhonarc/lists/jetty-users/msg02419.html)上的答案,网络应用目前无法单独配置码头。 XML。
因此,我通过将与Web应用程序相关的内容(资源库和上下文路径)移动到maven pom.xml来解决了这个问题。
答案 1 :(得分:0)
我使用的是jetty-maven-plugin的8.1.4.v2012052版本,并试图在pom.xml中设置contextPath,例如:
<configuration>
<webAppConfig>
<contextPath>${application.contextpath}</contextPath>
</webAppConfig>
...
</configuration>
然而,contextPath仍然默认为“/".
我使用pom.xml中的相同配置降级到版本7.5.1.v20110908。然后显示了预期的contextPath。
因此,我认为这可能是通过降级解决的8.1.4版本的问题。