【问题标题】:WebApp Deployment on ServiceMixServiceMix 上的 WebApp 部署
【发布时间】:2013-08-13 20:30:33
【问题描述】:

我读了很多,尝试了很多,但我无法解决这个问题。问题是,我尝试在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: org.springframework.web.context.ContextLoaderListener 找不到 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.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.loadBundleClass(Felix.java:1654)[org.apache.felix.framework-3.2.2.jar:] 在 org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:909)[org.apache.felix.framework-3.2.2.jar:] 在 org.ops4j.pax.swissbox.core.BundleClassLoader.findClass(BundleClassLoader.java:176)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.core.BundleClassLoader.loadClass(BundleClassLoader.java:194)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247)[:1.6.0_45] 在 org.ops4j.pax.web.extender.war.internal.RegisterWebAppVisitorHS.newInstance(RegisterWebAppVisitorHS.java:221)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.web.extender.war.internal.RegisterWebAppVisitorWC.visit(RegisterWebAppVisitorWC.java:269)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.web.extender.war.internal.model.WebApp.accept(WebApp.java:561)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.web.extender.war.internal.WebAppPublisher$HttpServiceListener.register(WebAppPublisher.java:170)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.web.extender.war.internal.WebAppPublisher$HttpServiceListener.serviceChanged(WebAppPublisher.java:155)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.web.extender.war.internal.WebAppPublisher$HttpServiceListener.serviceChanged(WebAppPublisher.java:119)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.tracker.ReplaceableService.setService(ReplaceableService.java:114)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.tracker.ReplaceableService.access$100(ReplaceableService.java:28)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.tracker.ReplaceableService$CollectionListener.serviceAdded(ReplaceableService.java:183)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.tracker.ServiceCollection$Tracker.addingService(ServiceCollection.java:181)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:896)[karaf.jar:2.2.10] 在 org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:261)[karaf.jar:2.2.10] 在 org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:184)[karaf.jar:2.2.10] 在 org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:339)[karaf.jar:2.2.10] 在 org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:273)[karaf.jar:2.2.10] 在 org.ops4j.pax.swissbox.tracker.ServiceCollection.onStart(ServiceCollection.java:139)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.lifecycle.AbstractLifecycle$Stopped.start(AbstractLifecycle.java:121)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.lifecycle.AbstractLifecycle.start(AbstractLifecycle.java:49)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.tracker.ReplaceableService.onStart(ReplaceableService.java:146)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.lifecycle.AbstractLifecycle$Stopped.start(AbstractLifecycle.java:121)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.lifecycle.AbstractLifecycle.start(AbstractLifecycle.java:49)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.web.extender.war.internal.WebAppPublisher.publish(WebAppPublisher.java:81)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.web.extender.war.internal.WebXmlObserver.doPublish(WebXmlObserver.java:304)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.web.extender.war.internal.WebXmlObserver.addingEntries(WebXmlObserver.java:153)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.extender.BundleWatcher.register(BundleWatcher.java:186)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.extender.BundleWatcher.access$000(BundleWatcher.java:45)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.extender.BundleWatcher$1.bundleChanged(BundleWatcher.java:127)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:807)[org.apache.felix.framework-3.2.2.jar:] 在 org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:729)[org.apache.felix.framework-3.2.2.jar:] 在 org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:610)[org.apache.felix.framework-3.2.2.jar:] 在 org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:3879)[org.apache.felix.framework-3.2.2.jar:] 在 org.apache.felix.framework.Felix.startBundle(Felix.java:1850)[org.apache.felix.framework-3.2.2.jar:] 在 org.apache.felix.framework.BundleImpl.start(BundleImpl.java:927)[org.apache.felix.framework-3.2.2.jar:] 在 org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1244)[7:org.apache.felix.fileinstall:3.2.4] 在 org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1216)[7:org.apache.felix.fileinstall:3.2.4] 在 org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:505)[7:org.apache.felix.fileinstall:3.2.4] 在 org.apache.felix.fileinstall.internal.DirectoryWatcher.run(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: org.restlet.ext.spring.SpringServerServlet 找不到 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.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.loadBundleClass(Felix.java:1654)[org.apache.felix.framework-3.2.2.jar:] 在 org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:909)[org.apache.felix.framework-3.2.2.jar:] 在 org.ops4j.pax.swissbox.core.BundleClassLoader.findClass(BundleClassLoader.java:176)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.core.BundleClassLoader.loadClass(BundleClassLoader.java:194)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247)[:1.6.0_45] 在 org.ops4j.pax.web.extender.war.internal.RegisterWebAppVisitorHS.newInstance(RegisterWebAppVisitorHS.java:221)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.web.extender.war.internal.RegisterWebAppVisitorWC.visit(RegisterWebAppVisitorWC.java:200)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.web.extender.war.internal.model.WebApp.accept(WebApp.java:583)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.web.extender.war.internal.WebAppPublisher$HttpServiceListener.register(WebAppPublisher.java:170)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.web.extender.war.internal.WebAppPublisher$HttpServiceListener.serviceChanged(WebAppPublisher.java:155)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.web.extender.war.internal.WebAppPublisher$HttpServiceListener.serviceChanged(WebAppPublisher.java:119)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.tracker.ReplaceableService.setService(ReplaceableService.java:114)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.tracker.ReplaceableService.access$100(ReplaceableService.java:28)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.tracker.ReplaceableService$CollectionListener.serviceAdded(ReplaceableService.java:183)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.tracker.ServiceCollection$Tracker.addingService(ServiceCollection.java:181)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:896)[karaf.jar:2.2.10] 在 org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:261)[karaf.jar:2.2.10] 在 org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:184)[karaf.jar:2.2.10] 在 org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:339)[karaf.jar:2.2.10] 在 org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:273)[karaf.jar:2.2.10] 在 org.ops4j.pax.swissbox.tracker.ServiceCollection.onStart(ServiceCollection.java:139)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.lifecycle.AbstractLifecycle$Stopped.start(AbstractLifecycle.java:121)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.lifecycle.AbstractLifecycle.start(AbstractLifecycle.java:49)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.tracker.ReplaceableService.onStart(ReplaceableService.java:146)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.lifecycle.AbstractLifecycle$Stopped.start(AbstractLifecycle.java:121)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.lifecycle.AbstractLifecycle.start(AbstractLifecycle.java:49)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.web.extender.war.internal.WebAppPublisher.publish(WebAppPublisher.java:81)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.web.extender.war.internal.WebXmlObserver.doPublish(WebXmlObserver.java:304)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.web.extender.war.internal.WebXmlObserver.addingEntries(WebXmlObserver.java:153)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.extender.BundleWatcher.register(BundleWatcher.java:186)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.extender.BundleWatcher.access$000(BundleWatcher.java:45)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.ops4j.pax.swissbox.extender.BundleWatcher$1.bundleChanged(BundleWatcher.java:127)[175:org.ops4j.pax.web.pax-web-extender-war:1.0.12.1] 在 org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:807)[org.apache.felix.framework-3.2.2.jar:] 在 org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:729)[org.apache.felix.framework-3.2.2.jar:] 在 org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:610)[org.apache.felix.framework-3.2.2.jar:] 在 org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:3879)[org.apache.felix.framework-3.2.2.jar:] 在 org.apache.felix.framework.Felix.startBundle(Felix.java:1850)[org.apache.felix.framework-3.2.2.jar:] 在 org.apache.felix.framework.BundleImpl.start(BundleImpl.java:927)[org.apache.felix.framework-3.2.2.jar:] 在 org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1244)[7:org.apache.felix.fileinstall:3.2.4] 在 org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1216)[7:org.apache.felix.fileinstall:3.2.4] 在 org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:505)[7:org.apache.felix.fileinstall:3.2.4] 在 org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:291)[7:org.apache.felix.fileinstall:3.2.4]

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

Error 405 HTTP method POST is not supported by this URL

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

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

Apache Karaf, WAR Deployment Issue

【问题讨论】:

    标签: spring apache-camel apache-servicemix


    【解决方案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 清单的战争)。 如果是第二个,您是否已解决所有必需的导入? 如果它是第一个,那么您的战争中是否包含所有必需的罐子? 正确的 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, ...
    

    【讨论】:

    • 我的战争包含 lib 文件夹中的所有 jars。不,我的战争不包含也不允许使用罐子。
    • 这是我的 MANIFEST.MF Manifest-Version: 1.0 Bundle-Name: IINT Bundle-SymbolicName: IINT Bundle-Version: 1.0.0.qualifier Bundle-ClassPath: .,WEB-INF/classes Bundle -供应商:RA Bundle-RequiredExecutionEnvironment:J2SE-1.6 这是我的 POM.XML pastebin.com/52d3paM5
    • 有什么进一步的帮助吗?
    • 我仍然无法成功部署war,我尝试了您告诉的方式,但错误仍然存​​在。你能更具体地帮助我吗?如果我把战争发给你好吗?
    • 如果你将你的问题和你的战争发布到 karaf 邮件列表,我今晚可能有时间 (GMT+1)
    猜你喜欢
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 2011-09-29
    • 2012-08-19
    • 2019-02-07
    • 2012-11-10
    • 1970-01-01
    • 2013-02-13
    相关资源
    最近更新 更多