2

任何帮助将不胜感激...

Maven Spring Roo 项目,JPA2 结合 CXF 原型的简单 Web 服务应用程序。

在作为 WAR 部署到 Fuse (Servicemix 4.4.1) 后(Fuse 将其转换为捆绑包),激活 (osgi:start nnn) 时出现以下错误..

java.io.FileNotFoundException:URL [bundle://248.0:1/com/bookstore/app/] 无法解析为绝对文件路径,因为它不驻留在文件系统中:bundle://248.0:1/com/书店/应用/

似乎是 Springs 组件扫描开始时..

app-context.xml包含

<context:component-scan base-package="com.bookstore.app" />

为扩展的堆栈跟踪道歉,但认为它可能有用......

21:28:07,365 | INFO  | l Console Thread | XmlBeanDefinitionReader          | 248 - mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war - 0.0.0 | Loading XML bean definitions from class path resource [META-INF/spring/app-context.xml]
21:28:07,457 | WARN  | l Console Thread | hMatchingResourcePatternResolver | 248 - mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war - 0.0.0 | Cannot search for matching files underneath URL [bundle://248.0:1/com/bookstore/app/] because it does not correspond to a directory in the file system
java.io.FileNotFoundException: URL [bundle://248.0:1/com/bookstore/app/] cannot be resolved to absolute file path because it does not reside in the file system: bundle://248.0:1/com/bookstore/app/
    at org.springframework.util.ResourceUtils.getFile(ResourceUtils.java:204)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.core.io.AbstractFileResolvingResource.getFile(AbstractFileResolvingResource.java:52)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.core.io.UrlResource.getFile(UrlResource.java:168)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.core.io.support.PathMatchingResourcePatternResolver.doFindPathMatchingFileResources(PathMatchingResourcePatternResolver.java:528)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.web.context.support.ServletContextResourcePatternResolver.doFindPathMatchingFileResources(ServletContextResourcePatternResolver.java:92)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.core.io.support.PathMatchingResourcePatternResolver.findPathMatchingResources(PathMatchingResourcePatternResolver.java:349)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.core.io.support.PathMatchingResourcePatternResolver.getResources(PathMatchingResourcePatternResolver.java:267)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.context.support.AbstractApplicationContext.getResources(AbstractApplicationContext.java:1227)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:204)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:204)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:84)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1335)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1325)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:135)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:93)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:186)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:147)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:132)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:93)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:93)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:467)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:397)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:282)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:204)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)[248:mvn_com.bookstore_bookstore-ws_1.0-SNAPSHOT_war:0]
    at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext$1.call(HttpServiceContext.java:168)[160:org.ops4j.pax.web.pax-web-jetty:1.0.3]
    at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext$1.call(HttpServiceContext.java:164)[160:org.ops4j.pax.web.pax-web-jetty:1.0.3]
    at org.ops4j.pax.swissbox.core.ContextClassLoaderUtils.doWithClassLoader(ContextClassLoaderUtils.java:60)[160:org.ops4j.pax.web.pax-web-jetty:1.0.3]
    at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.addEventListener(HttpServiceContext.java:161)[160:org.ops4j.pax.web.pax-web-jetty:1.0.3]
    at org.ops4j.pax.web.service.jetty.internal.JettyServerImpl.addEventListener(JettyServerImpl.java:235)[160:org.ops4j.pax.web.pax-web-jetty:1.0.3]
    at org.ops4j.pax.web.service.jetty.internal.ServerControllerImpl$Started.addEventListener(ServerControllerImpl.java:276)[160:org.ops4j.pax.web.pax-web-jetty:1.0.3]
    at org.ops4j.pax.web.service.jetty.internal.ServerControllerImpl.addEventListener(ServerControllerImpl.java:127)[160:org.ops4j.pax.web.pax-web-jetty:1.0.3]
    at org.ops4j.pax.web.service.internal.HttpServiceStarted.registerEventListener(HttpServiceStarted.java:286)[158:org.ops4j.pax.web.pax-web-runtime:1.0.3]
    at org.ops4j.pax.web.service.internal.HttpServiceProxy.registerEventListener(HttpServiceProxy.java:133)[158:org.ops4j.pax.web.pax-web-runtime:1.0.3]
    at org.ops4j.pax.web.extender.war.internal.RegisterWebAppVisitorWC.visit(RegisterWebAppVisitorWC.java:276)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.web.extender.war.internal.model.WebApp.accept(WebApp.java:561)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.web.extender.war.internal.WebAppPublisher$HttpServiceListener.register(WebAppPublisher.java:170)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.web.extender.war.internal.WebAppPublisher$HttpServiceListener.serviceChanged(WebAppPublisher.java:155)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.web.extender.war.internal.WebAppPublisher$HttpServiceListener.serviceChanged(WebAppPublisher.java:119)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.swissbox.tracker.ReplaceableService.setService(ReplaceableService.java:114)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.swissbox.tracker.ReplaceableService.access$100(ReplaceableService.java:28)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.swissbox.tracker.ReplaceableService$CollectionListener.serviceAdded(ReplaceableService.java:183)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.swissbox.tracker.ServiceCollection$Tracker.addingService(ServiceCollection.java:181)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:896)[karaf.jar:2.2.2-fuse-04-06]
    at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:261)[karaf.jar:2.2.2-fuse-04-06]
    at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:184)[karaf.jar:2.2.2-fuse-04-06]
    at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:339)[karaf.jar:2.2.2-fuse-04-06]
    at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:273)[karaf.jar:2.2.2-fuse-04-06]
    at org.ops4j.pax.swissbox.tracker.ServiceCollection.onStart(ServiceCollection.java:139)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.swissbox.lifecycle.AbstractLifecycle$Stopped.start(AbstractLifecycle.java:121)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.swissbox.lifecycle.AbstractLifecycle.start(AbstractLifecycle.java:49)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.swissbox.tracker.ReplaceableService.onStart(ReplaceableService.java:146)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.swissbox.lifecycle.AbstractLifecycle$Stopped.start(AbstractLifecycle.java:121)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.swissbox.lifecycle.AbstractLifecycle.start(AbstractLifecycle.java:49)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.web.extender.war.internal.WebAppPublisher.publish(WebAppPublisher.java:81)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.web.extender.war.internal.WebXmlObserver.doPublish(WebXmlObserver.java:304)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.web.extender.war.internal.WebXmlObserver.addingEntries(WebXmlObserver.java:153)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.swissbox.extender.BundleWatcher.register(BundleWatcher.java:186)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.swissbox.extender.BundleWatcher.access$000(BundleWatcher.java:45)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.ops4j.pax.swissbox.extender.BundleWatcher$1.bundleChanged(BundleWatcher.java:127)[163:org.ops4j.pax.web.pax-web-extender-war:1.0.3]
    at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:795)[org.apache.felix.framework-3.0.9-fuse-05-06.jar:]
    at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:717)[org.apache.felix.framework-3.0.9-fuse-05-06.jar:]
    at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:597)[org.apache.felix.framework-3.0.9-fuse-05-06.jar:]
    at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:3781)[org.apache.felix.framework-3.0.9-fuse-05-06.jar:]
    at org.apache.felix.framework.Felix.startBundle(Felix.java:1792)[org.apache.felix.framework-3.0.9-fuse-05-06.jar:]
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:927)[org.apache.felix.framework-3.0.9-fuse-05-06.jar:]
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:914)[org.apache.felix.framework-3.0.9-fuse-05-06.jar:]
    at org.apache.karaf.shell.osgi.StartBundle.doExecute(StartBundle.java:29)[19:org.apache.karaf.shell.osgi:2.2.2.fuse-04-06]
    at org.apache.karaf.shell.osgi.BundlesCommand.doExecute(BundlesCommand.java:37)[19:org.apache.karaf.shell.osgi:2.2.2.fuse-04-06]
    at org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:38)[36:org.apache.karaf.shell.console:2.2.2.fuse-04-06]
    at org.apache.felix.gogo.commands.basic.AbstractCommand.execute(AbstractCommand.java:35)[36:org.apache.karaf.shell.console:2.2.2.fuse-04-06]
    at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)[36:org.apache.karaf.shell.console:2.2.2.fuse-04-06]
    at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:474)[36:org.apache.karaf.shell.console:2.2.2.fuse-04-06]
    at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:400)[36:org.apache.karaf.shell.console:2.2.2.fuse-04-06]
    at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)[36:org.apache.karaf.shell.console:2.2.2.fuse-04-06]
    at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)[36:org.apache.karaf.shell.console:2.2.2.fuse-04-06]
    at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)[36:org.apache.karaf.shell.console:2.2.2.fuse-04-06]
    at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89)[36:org.apache.karaf.shell.console:2.2.2.fuse-04-06]
    at org.apache.karaf.shell.console.jline.Console.run(Console.java:240)[36:org.apache.karaf.shell.console:2.2.2.fuse-04-06]
    at java.lang.Thread.run(Thread.java:680)[:1.6.0_29]
4

2 回答 2

1

远射 - 但看起来一些 Spring 正在尝试扫描包缓存,但对包的原始位置感到困惑。

在您的 Fuse 配置中,尝试从 Felix 切换到 Equinox,在 Karaf 中它位于etc/config.properties并且属性是karaf.framework- 在 Fuse ESB 中应该几乎相同。

于 2012-05-04T16:16:36.857 回答
0

看看这个页面,

https://ops4j1.jira.com/wiki/display/ops4j/Pax+Web+Extender+-+War+-+Examples

<context:component-scan base-package="*" />OSGI 环境目前不支持。确保<context:annotation-config />在应用程序上下文中使用并将所有组件定义为 bean。

于 2013-10-30T12:21:31.727 回答