0

我正在使用 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/

如何停止此上下文的启动?任何帮助是极大的赞赏。

4

2 回答 2

1

根据 Jan Bartel 在邮件列表 (http://dev.eclipse.org/mhonarc/lists/jetty-users/msg02419.html) 上的回答,目前无法单独使用 jetty.xml 配置 Web 应用程序。

因此,我通过将与 Web 应用程序相关的东西(资源库和上下文路径)移动到 maven pom.xml 来解决了这个问题。

于 2012-08-12T12:02:44.537 回答
0

我正在使用 jetty-maven-plugin 的 8.1.4.v2012052 版本,并尝试在 pom.xml 中设置 contextPath,例如:

<configuration>
<webAppConfig>
    <contextPath>${application.contextpath}</contextPath>
</webAppConfig> 
...
</configuration>

然而,contextPath 仍然默认为“/”。

我降级到版本 7.5.1.v20110908,在 pom.xml 中具有相同的配置。预期的 contextPath 确实显示了。

因此,我认为这可能是通过降级解决的 8.1.4 版本的问题。

于 2012-08-22T21:17:31.797 回答