2013-02-08 51 views
1

我试图使用最新的Jackrabbit稳定版本(2.4.3)并将其作为OSGi捆绑包部署在Glassfish v3.1.2上。MalformedURLException与Glassfish 3.1.2上的Jackrabbit OSGi Bundle

首先,我尝试了jackrabbit-standalone包,但是我的奇怪依赖(com.ibm.jvm !?)遇到了一些麻烦。然后我注意到jackrabbit-bundle项目,并部署了它所需的依赖项(Commons Logging,SLF4J,JCR API,DB2 Driver)。

虽然束似乎开始安装后就好了,当我重新启动GlassFish服务器,下面的异常被抛出:

[#|2013-02-08T09:49:12.559+0100|SEVERE|glassfish3.1.2|javax.enterprise.resource.webcontainer.jsf.config|_ThreadID=18;_ThreadName=Thread-2;|Critical error during deployment: 
com.sun.faces.config.ConfigurationException: java.util.concurrent.ExecutionException: java.net.MalformedURLException: Unknown protocol: jndi 
at com.sun.faces.config.ConfigManager.getConfigDocuments(ConfigManager.java:672) 
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:322) 
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225) 
at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:4750) 
at com.sun.enterprise.web.WebModule.contextListenerStart(WebModule.java:550) 
at org.apache.catalina.core.StandardContext.start(StandardContext.java:5366) 
at com.sun.enterprise.web.WebModule.start(WebModule.java:498) 
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:917) 
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:901) 
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:733) 
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2018) 
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1669) 
at com.sun.enterprise.web.WebApplication.start(WebApplication.java:109) 
at org.glassfish.internal.data.EngineRef.start(EngineRef.java:130) 
at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:269) 
at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:301) 
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:461) 
at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:375) 
at com.sun.enterprise.v3.admin.adapter.InstallerThread.load(InstallerThread.java:210) 
at com.sun.enterprise.v3.admin.adapter.InstallerThread.run(InstallerThread.java:108) 
Caused by: java.util.concurrent.ExecutionException: java.net.MalformedURLException: Unknown protocol: jndi 
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) 
at java.util.concurrent.FutureTask.get(FutureTask.java:83) 
at com.sun.faces.config.ConfigManager.getConfigDocuments(ConfigManager.java:670) 
... 19 more 
Caused by: java.net.MalformedURLException: Unknown protocol: jndi 
at java.net.URL.<init>(URL.java:601) 
at java.net.URL.<init>(URL.java:464) 
at java.net.URL.<init>(URL.java:413) 
at java.net.URI.toURL(URI.java:1080) 
at com.sun.faces.config.ConfigManager$ParseTask.call(ConfigManager.java:920) 
at com.sun.faces.config.ConfigManager$ParseTask.call(ConfigManager.java:865) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
at com.sun.faces.config.ConfigManager.getConfigDocuments(ConfigManager.java:656) 
... 19 more 
|#] 

搜索这个错误并没有让我远。我已经尝试将捆绑startlevel增加到10,假设它启动得太早,但这并没有帮助。

有没有人有一个想法可能是什么问题? 有人甚至使用Jackrabbit作为纯粹的OSGi Bundle(除了Apache Sling的东西)吗?

回答

0

该问题不是特定于长耳兔。请参阅http://java.net/jira/browse/GLASSFISH-18880详细讨论此错误。它已在GlassFish中继版本中修复。如果您使用的是GlassFish 3.1.2.x,那么请使用状态白板中提到的解决方法。从本质上讲,你必须禁用管理员控制台,通过运行以下命令自动拿出作为服务器启动的一部分:

asadmin set configs.config.server-config.admin-service.property.adminConsoleStartup=NEVER

希望这有助于

Sahoo

+0

这样做的伎俩,非常感谢你! – cypha