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