0

我读了很多,尝试了很多,但我无法解决这个问题。问题是,我正在尝试在Service mix中部署war文件,但它提示以下错误:

04:32:26,792 | 调试 | 混合4.5.1/部署| HttpServiceContext
| 117 - org.ops4j.pax.web.pax-web-jetty - 1.0.12.1 | 找到资源:空 04:32:26,792 | 调试 | 混合4.5.1/部署| 抽象生命周期
| 112 - org.eclipse.jetty.util - 7.5.4.v20111024 | 开始 org.ops4j.pax.web.service.spi.model.ServletModel-13 04:32:26,793 | 错误 | 混合4.5.1/部署| RegisterWebAppVisitorWC | 175 - org.ops4j.pax.web.pax-web-extender-war - 1.0.12.1 | 注册异常。跳过。java.lang.ClassNotFoundException: IGE_INTEGRATION [226] 在 org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:812)[org.apache.felix.framework- 3.2.2.jar:] 在 org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:72)[org.apache.felix.framework-3.2.2.jar:] 在 org.apache.felix。 framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1807)[org.apache.felix.framework-3.2.2.jar:] 在 java.lang.ClassLoader。运行(DirectoryWatcher.java:291)[7:org.apache.felix.fileinstall:3.2.4] 04:32:26,794 | 错误 | 混合4.5.1/部署| 注册WebAppVisitorWC
| 175 - org.ops4j.pax.web.pax-web-extender-war - 1.0.12.1 | 注册异常。跳过。java.lang.ClassNotFoundException: IGE_INTEGRATION [226] 在 org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:812)[org.apache.felix.framework- 3.2.2.jar:] 在 org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:72)[org.apache.felix.framework-3.2.2.jar:] 在 org.apache.felix。 framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1807)[org.apache.felix.framework-3.2.2.jar:] at java.lang.ClassLoader.loadClass(ClassLoader.java:247)[:1.6.0_45 ] 在 org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java:670)[org.apache.felix.framework-3.2.2.jar:] 在 org.apache.felix.framework.Felix。

之后,当我点击 jsp 文件时,一切正常,我可以看到那个 jsp 文件。但是当我尝试调用 Rest URL 时,它会提示一个错误:

Error 405 HTTP method POST is not supported by this URL

但是在本地,当我通过 jetty:run 运行应用程序时,一切正常。

我也在这里发布了这个问题:

Apache Karaf,WAR 部署问题

4

1 回答 1

1

这:

RegisterWebAppVisitorWC | 175 - org.ops4j.pax.web.pax-web-extender-war - 1.0.12.1 | Registration exception. Skipping. java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener not found by IGE_INTEGRATION [226] at org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:812)[org.apache.felix.framework-3.2.2.jar:] at org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:72)[org.apache.felix.framework-3.2.2.jar:] at 

告诉我你缺少一些弹簧罐,你的 WAR 是如何构建的,作为标准。WAR 或作为 WAB(与 OSGi 清单的战争)。如果是第二个,您是否已解决所有必需的导入?如果它是第一个,那么您的战争中是否包含所有必需的 jar,并且位于正确的位置 WEB-INF/lib。您的 WAR 中是否包含一些“不允许”的 jar,例如 servlet.jar 等...

编辑: 好的,您的战争确实包含 lib 文件夹中的所有 jar,但您只将 WEB-INF/classes 定义为 Bundle-ClassPath 的一部分,这就是您所缺少的。您需要定义完整的类路径,包括 lib 文件夹中的 jar。所以你的 Bundle-ClassPath 需要看起来像:

Bundle-ClassPath: WEB-INF/classes, WEB-INF/lib/spring-core.jar, ...
于 2013-08-14T09:25:30.250 回答