在ServiceMix(OSGI)下运行的Jetty中设置ContextPath

时间:2012-10-01 06:55:02

标签: jetty embedded-jetty apache-karaf apache-felix apache-servicemix

以下是我对环境的简要介绍。

我试图通过制作如下所示的MANIFEST.MF来将myapp WAR转换为OSGi兼容,并希望在ServiceMix中部署这个基于OSGi的容器的战争。

MANIFEST.MF

Manifest-Version: 2.0
Bundle-SymbolicName: myapp
Bundle-Version: 2.1.dev
Bundle-Name: Jetty.myapp
Bundle-Vendor: ABC
Created-By: 1.6.0_25-b06 (Sun Microsystems Inc.)
Bundle-ClassPath: .,WEB-INF/lib, WEB-INF/classes, xforms/xsltforms
Web-ContextPath: myapp
Webapp-Context: myapp
Import-Package: javax.servlet
Built-By: root
Project-Name: ABC_PRJ
Project-Version: 2.1.dev
Project-Build: ${DSTAMP}
SVN-Revision: ${svn.revision}

ContextPath被设置为null,我应该在哪里设置contextPath以及如何设置?您可以在FileNotFound异常中观察到'null'字符串。

日志:

java.io.FileNotFoundException: null/WEB-INF/myForms-config.xml (No such file or
        directory)

我在myapp中的web.xml是:

<contextPath>/</contextPath>
<context-param>
      <param-name>myForms.configfile</param-name>
      <param-value>WEB-INF/myForms-config.xml</param-value>
</context-param>

是myapp或jetty还是serviceMix的问题?任何线索?

1 个答案:

答案 0 :(得分:0)

您需要通过Manifest设置Web上下文路径,而不是通过web.xml 有关更多信息,请查看Pax-Web