1

我们有一个 maven+springMVC 应用程序,它使用 maven jetty 插件在我们进行开发时启动应用程序。我们使用 jetty-env.xml 文件来设置上下文和 JNDI 配置。该应用程序将成为更大门户的一部分。

我们正在使用 maven jetty 插件

<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.2.0.v20101020</version>

带配置

<webAppConfig>
  <contextPath>/ASX/mainApp</contextPath>
  <jettyEnvXml>src/main/resources/jetty-env.xml</jettyEnvXml>
</webAppConfig>

并使用 jetty-env.xml

<Configure id='jms-webapp-wac' class="org.eclipse.jetty.webapp.WebAppContext">
    <Set name="contextPath">/ASX/mainApp</Set>
    ...
    ...
</Configure>

我们的目录结构是:

MainApp
  /forms
    page1.html
    page2.html
    etc...
  /WEB-INF
    web.xml

PortalApp
  /BAL_S
    /css
    /images
    /js
    etc...

现在 PortalApp 只有静态文件,并不是真正的 Web 应用程序,即它没有 web.xml

该应用程序依赖于门户中的 javaScripts。一些 javaScript 的位置如下:

<script src="/BAL_S/js/portal-jquery-lib.js"></script>
<script src="/BAL_S/js/libs/foundation.js"></script>
etc...

如您所见,该位置以 /BAL_S 开头,我们发现它很难开始工作,因为它就像引用另一个 webapp 上下文一样。当我们使用 jetty 启动应用程序时,我们会收到 javaScript 错误,因为它找不到 /BAL_S

如果我们在 tomcat 中部署我们的应用程序并对其进行配置,如下所示,应用程序可以正常工作,没有任何 javaScript 错误。

<Context path="/" docBase="PortalApp"/>
  1. 所以问题是如何在 Jetty 中进行类似的配置,以便在应用程序启动时检测 /BAL_S 上下文?

  2. 我想我们需要在 Jetty 中有两个上下文。我该如何配置?

  3. 什么是 maven jetty 插件的 webConfig 来引用这个配置?

希望有人可以提供帮助。示例会很有用。

提前致谢。通用汽车

4

1 回答 1

1

好的,我所要做的就是添加到 maven jetty 插件配置中,如下:

            <contextHandlers>
                <contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
                    <contextPath>/</contextPath>
                    <resourceBase>src/main/PortalApp/</resourceBase>
                </contextHandler>
            </contextHandlers>

因此,这会将上下文路径“/”配置为“src/main/PortalApp/”,现在我们可以访问标签中的/BAL_S。

于 2013-09-09T12:13:51.003 回答