1

我正在尝试使用最新的 Jackrabbit 稳定版本(2.4.3)并将其部署为 Glassfish v3.1.2 上的 OSGi 包。

首先,我尝试了jackrabbit-standalone包,但我遇到了一些奇怪的依赖关系(com.ibm.jvm!?)的问题。然后我注意到jackrabbit-bundle项目并使用它所需的依赖项(Commons Logging、SLF4J、JCR API、DB2 驱动程序)进行部署。

尽管捆绑包在安装后似乎启动得很好,但当我重新启动 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
|#]

搜索这个错误并没有让我走得太远。我已经尝试将 bundle startlevel 提高到 10,假设它开始得太早了,但这并没有帮助。

有谁知道可能是什么问题?有人甚至将 Jackrabbit 用作纯 OSGi Bundle(不包括 Apache Sling 的东西)吗?

4

2 回答 2

0

该问题并非特定于jackrabbit。看http://java.net/jira/browse/GLASSFISH-18880,其中详细讨论了此错误。它已在 GlassFish 主干构建中得到修复。如果您使用的是 GlassFish 3.1.2.x,请使用 bug 状态白板中提到的解决方法。本质上,您必须通过运行以下命令来禁用管理控制台作为服务器启动的一部分自动出现:

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

希望这可以帮助,

萨虎

于 2013-02-11T05:36:19.210 回答
0


设置此属性对我不起作用。
会是什么?:https
://stackoverflow.com/questions/15020979/also-having-malformedurlexception-with-jackrabbit-osgi-bundle-on-glassfish-3-1-2 M。

于 2013-02-22T15:53:08.257 回答