1
votes

I'm trying to use the latest Jackrabbit stable release (2.4.3) and deploy it as an OSGi bundle on Glassfish v3.1.2.

First, i tried the jackrabbit-standalone bundle, but i had some trouble with its weird dependencies (com.ibm.jvm!?). Then i noticed the jackrabbit-bundle project and deployed that with its required dependencies (Commons Logging, SLF4J, JCR API, DB2 Driver).

Although the bundle seems to start just fine after installing it, when i restart the Glassfish Server, the following exception is thrown:

[#|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
|#]

Searching for this error didn't get me far. I already tried to increase the bundle startlevel to 10, assuming it started too early, but that didn't help.

Does anyone have an idea what may be the problem? Is anyone even using Jackrabbit as a pure OSGi Bundle yet (excluding the Apache Sling stuff)?

2

2 Answers

0
votes

The problem is not specific to jackrabbit. See http://java.net/jira/browse/GLASSFISH-18880 where this error is discussed at length. It has been fixed in GlassFish trunk builds. If you are using GlassFish 3.1.2.x, then use the work around mentioned in the status whiteboard of bug. Essentially, you have to disable admin console to come up automatically as part of server startup by running the following command:

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

Hope this helps,

Sahoo