geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ivan <xhh...@gmail.com>
Subject Re: Geronimo v3 - ClassNotFoundException for class available in sharedlib
Date Mon, 09 Apr 2012 07:50:45 GMT
Hmm, think I have fixed that in
https://issues.apache.org/jira/browse/GERONIMO-6254 Is it OK for you to
build that components by yourself, or I could provide the patched jar files
somewhere.


2012/4/9 Karthik Mailing <kshiraly.lists@gmail.com>

> Hi Ivan,
>
> Thanks for your reply.
> I had already placed the jars in GERONIMO_HOME/var/shared/lib prior to
> starting Geronimo.
>
>
> Content of var/shared/META-INF:
> ---------------------------------------
> Manifest-Version: 1.0
> Bundle-ManifestVersion: 2
> Bundle-SymbolicName: org.apache.geronimo.configs.sharedlib.SharedLib
> Bundle-Version: 3.0.0.beta-1
> Bundle-ClassPath: classes,lib/hsql.jar,lib/jtds.jar,lib/mysql.jar,lib/
>  portal-service.jar,lib/portlet.jar,lib/postgresql.jar
> Import-Package: org.apache.geronimo.kernel.osgi,org.apache.geronimo.sy
>  stem.sharedlib,org.osgi.framework,org.apache.geronimo.gbean,org.apach
>  e.geronimo.system.serverinfo
>
> The jar names are all correct and no jars have been missed in the above
> list. The  class that could not be found is actually in portal-service.jar.
>
> Karthik
>
>
> On Mon, Apr 9, 2012 at 9:38 AM, Ivan <xhhsld@gmail.com> wrote:
>
>> The configurations look fine to me, after copying those jar files in the
>> var/shared library, do you restart the server ?
>> Could you show me the content of the file var\shared\META-INF/MANIFEST.MF
>> file ?
>>
>>
>> 2012/4/9 kshiraly <kshiraly.lists@gmail.com>
>>
>>> Hi,
>>>
>>> I'm trying to deploy a WAR file in Geronimo v3 JavaEE6 web profile
>>> release
>>> (geronimo-tomcat7-javaee6-3.0-beta-1).
>>> The WAR file's descriptors contain references to JAAS related classes
>>> (roles, principals, login modules) which are available in a JAR file in
>>> GERONIMO_HOME/var/shared/lib.
>>>
>>> This same configuration works in a Geronimo 2.2.1 installation, but shows
>>> the following exception and stack trace in v3 when I copy the WAR file
>>> into
>>> Geronimo's hot deployment directory (GERONIMO_HOME/deploy):
>>>
>>>
>>> =============================================================================
>>> [Loaded org.apache.geronimo.xbeans.geronimo.security.impl.GerRoleTypeImpl
>>> from
>>>
>>> file:/D:/developer/geronimo/geronimo-tomcat7-javaee6-3.0-beta-1/var/cache/org.eclipse.osgi/bundles/124/1/bundlefile]
>>> [Loaded org.apache.geronimo.xbeans.geronimo.security.GerPrincipalType
>>> from
>>>
>>> file:/D:/developer/geronimo/geronimo-tomcat7-javaee6-3.0-beta-1/var/cache/org.eclipse.osgi/bundles/124/1/bundlefile]
>>> [Loaded
>>> org.apache.geronimo.xbeans.geronimo.security.impl.GerPrincipalTypeImpl
>>> from
>>>
>>> file:/D:/developer/geronimo/geronimo-tomcat7-javaee6-3.0-beta-1/var/cache/org.eclipse.osgi/bundles/124/1/bundlefile]
>>> [Loaded org.apache.geronimo.security.util.ConfigurationUtil$1 from
>>>
>>> file:/D:/developer/geronimo/geronimo-tomcat7-javaee6-3.0-beta-1/var/cache/org.eclipse.osgi/bundles/87/1/bundlefile]
>>> java.security.PrivilegedActionException:
>>> java.lang.ClassNotFoundException:
>>> com.liferay.portal.kernel.security.jaas.PortalRole
>>>        at java.security.AccessController.doPrivileged(Native Method)
>>>        at
>>>
>>> org.apache.geronimo.security.util.ConfigurationUtil.generatePrincipal(ConfigurationUtil.java:77)
>>>        at
>>>
>>> org.apache.geronimo.security.deployment.GeronimoSecurityBuilderImpl.buildPrincipal(GeronimoSecurityBuilderImpl.java:280)
>>>        at
>>>
>>> org.apache.geronimo.security.deployment.GeronimoSecurityBuilderImpl.configureRoleMapper(GeronimoSecurityBuilderImpl.java:314)
>>>        at
>>>
>>> org.apache.geronimo.security.deployment.GeronimoSecurityBuilderImpl.build(GeronimoSecurityBuilderImpl.java:184)
>>>        at
>>>
>>> org.apache.geronimo.deployment.NamespaceDrivenBuilderCollection.build(NamespaceDrivenBuilderCollection.java:43)
>>>        at
>>>
>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicInitContext(AbstractWebModuleBuilder.java:496)
>>>        at
>>>
>>> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.initContext(AbstractWebModuleBuilder.java:436)
>>>        at
>>>
>>> org.apache.geronimo.j2ee.deployment.SwitchingModuleBuilder.initContext(SwitchingModuleBuilder.java:168)
>>>        at
>>>
>>> org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:685)
>>>        at
>>> org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:255)
>>>        at
>>> org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:140)
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>        at
>>>
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>        at
>>>
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>        at
>>>
>>> org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
>>>        at
>>>
>>> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:131)
>>>        at
>>>
>>> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:883)
>>>        at
>>> org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:245)
>>>        at
>>>
>>> org.apache.geronimo.deployment.plugin.local.AbstractDeployCommand.doDeploy(AbstractDeployCommand.java:116)
>>>        at
>>>
>>> org.apache.geronimo.deployment.plugin.local.DistributeCommand.run(DistributeCommand.java:61)
>>>        at java.lang.Thread.run(Thread.java:662)
>>> Caused by: java.lang.ClassNotFoundException:
>>> com.liferay.portal.kernel.security.jaas.PortalRole
>>>        at
>>>
>>> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
>>>        at
>>>
>>> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
>>>        at
>>>
>>> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
>>>        at
>>>
>>> org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(GeronimoClassLoader.java:85)
>>>        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
>>>        at
>>>
>>> org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)
>>>        at
>>>
>>> org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
>>>        at
>>>
>>> org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207)
>>>        at
>>>
>>> org.apache.geronimo.security.util.ConfigurationUtil$1.run(ConfigurationUtil.java:79)
>>>        at
>>>
>>> org.apache.geronimo.security.util.ConfigurationUtil$1.run(ConfigurationUtil.java:77)
>>>        ... 23 more
>>>
>>>
>>> =============================================================================
>>>
>>>
>>>
>>> *var/config/config.xml has entries for sharedlib:*
>>>
>>>    <module
>>> name="org.apache.geronimo.configs/sharedlib-extender/3.0-beta-1/car"/>
>>>    <module name="org.apache.geronimo.configs/sharedlib/3.0-beta-1/car"/>
>>>
>>>
>>> *WAR file's geronimo-web.xml:*
>>>
>>> <?xml version="1.0"?>
>>>
>>> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1">
>>>        <environment>
>>>                <moduleId>
>>>                        <groupId>liferay</groupId>
>>>                        <artifactId>liferay-portal</artifactId>
>>>                        <version>6.1.0</version>
>>>                        <type>car</type>
>>>                </moduleId>
>>>                <dependencies>
>>>                        <dependency>
>>>
>>>  <groupId>org.apache.geronimo.configs</groupId>
>>>                                <artifactId>j2ee-server</artifactId>
>>>                                <type>car</type>
>>>                        </dependency>
>>>                        <dependency>
>>>
>>>  <groupId>org.apache.geronimo.configs</groupId>
>>>                                <artifactId>sharedlib</artifactId>
>>>                                <type>car</type>
>>>                        </dependency>
>>>                        <dependency>
>>>
>>>  <groupId>org.apache.geronimo.framework</groupId>
>>>                                <artifactId>j2ee-security</artifactId>
>>>                                <type>car</type>
>>>                        </dependency>
>>>                        <dependency>
>>>
>>>  <groupId>org.apache.geronimo.framework</groupId>
>>>                                <artifactId>rmi-naming</artifactId>
>>>                                <type>car</type>
>>>                        </dependency>
>>>                </dependencies>
>>>
>>>        </environment>
>>>        <context-root>/</context-root>
>>>        <security-realm-name>PortalRealm</security-realm-name>
>>>        <security>
>>>                <default-principal>
>>>                        <principal name="anonymous"
>>> class="com.liferay.portal.kernel.security.jaas.PortalPrincipal" />
>>>                </default-principal>
>>>                <role-mappings>
>>>                        <role role-name="users">
>>>                                <principal
>>> class="com.liferay.portal.kernel.security.jaas.PortalRole"
>>> name="users" />
>>>                        </role>
>>>                </role-mappings>
>>>        </security>
>>>        <gbean name="PortalRealm"
>>> class="org.apache.geronimo.security.realm.GenericSecurityRealm">
>>>                <attribute name="realmName">PortalRealm</attribute>
>>>                <reference name="ServerInfo">
>>>                        <name>ServerInfo</name>
>>>                </reference>
>>>
>>>                <xml-reference name="LoginModuleConfiguration">
>>>                        <log:login-config
>>> xmlns:log="http://geronimo.apache.org/xml/ns/loginconfig-2.0">
>>>                                <log:login-module control-flag="REQUIRED"
>>> wrap-principals="false">
>>>
>>>  <log:login-domain-name>PortalRealm</log:login-domain-name>
>>>
>>>
>>> <log:login-module-class>com.liferay.portal.security.jaas.ext.tomcat.PortalLoginModule</log:login-module-class>
>>>                                </log:login-module>
>>>                        </log:login-config>
>>>                </xml-reference>
>>>        </gbean>
>>> </web-app>
>>>
>>> *Other information: *
>>> For the record, the WAR file I'm trying to deploy is liferay-portal.war.
>>> Liferay comes with a Geronimo bundle for Geronimo v2.2.1.
>>> I wanted to try out a similar deployment on Geronimo v3.
>>> A diff utility run on liferay+geronimo2.2.1 bundle and a normal
>>> geronimo2.2.1 download showed that Liferay has made only 2 additions - 1)
>>> Added all liferay WARs in /deploy 2) Added all shared JARs in
>>> /var/shared/lib. All other changes are disabling and removal of services
>>> like openejb which liferay does not use.
>>> The same deployment in Geronimo v3 throws ClassNotFoundException. Does
>>> the
>>> OSGI support in v3 require some additional configuration for sharedlib?
>>>
>>> Thanks
>>> kshiraly
>>>
>>> --
>>> View this message in context:
>>> http://apache-geronimo.328035.n3.nabble.com/Geronimo-v3-ClassNotFoundException-for-class-available-in-sharedlib-tp3895754p3895754.html
>>> Sent from the Users mailing list archive at Nabble.com.
>>>
>>
>>
>>
>> --
>> Ivan
>>
>
>


-- 
Ivan

Mime
View raw message