As part of validation, DOL loads the ejb-class & looks for a particular
method.
One of the ejb methods uses "KernelConnection" which is not available
for the classloader and hence this exception.
On Fri, 2008-05-30 at 09:07 +0200, Markus Karg wrote:
> I do not use a deployment descriptor at all.
>
> -----Original Message-----
> From: Jagadish.Ramu_at_Sun.COM [mailto:Jagadish.Ramu_at_Sun.COM]
> Sent: Freitag, 30. Mai 2008 09:02
> To: users_at_glassfish.dev.java.net
> Cc: Hong Zhang
> Subject: RE: Re: Why does the Client Container try to load a resourceadapter'sConnection class?
>
> Seems like application is being validated and as part of it, DOL
> (deployment object library) loads the ejb descriptors that in-turn is
> trying to load the class.
>
> CC-ing Hong for help.
>
> Do you have any reference of rar-class in ejb descriptors ?
> eg: resource-ref
>
> Thanks,
> -Jagadish
>
>
> On Thu, 2008-05-29 at 14:09 +0200, Markus Karg wrote:
> > Here it is. "de/quipsy/connector/kernel/api/outbound/KernelConnection" is part of the custom interface of the resource adapter.
> >
> > java.lang.reflect.InvocationTargetException
> > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> > at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
> > at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
> > at java.lang.reflect.Constructor.newInstance(Unknown Source)
> > at com.sun.enterprise.appclient.jws.boot.JWSACCMain.run(JWSACCMain.java:221)
> > at com.sun.enterprise.appclient.jws.boot.JWSACCMain.main(JWSACCMain.java:182)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> > at java.lang.reflect.Method.invoke(Unknown Source)
> > at com.sun.javaws.Launcher.executeApplication(Unknown Source)
> > at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
> > at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
> > at com.sun.javaws.Launcher.run(Unknown Source)
> > at java.lang.Thread.run(Unknown Source)
> > Caused by: java.lang.RuntimeException: java.lang.NoClassDefFoundError: de/quipsy/connector/kernel/api/outbound/KernelConnection
> > at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:487)
> > ... 15 more
> > Caused by: java.lang.NoClassDefFoundError: de/quipsy/connector/kernel/api/outbound/KernelConnection
> > at java.lang.Class.getDeclaredMethods0(Native Method)
> > at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
> > at java.lang.Class.getDeclaredMethods(Unknown Source)
> > at com.sun.enterprise.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:263)
> > at com.sun.enterprise.deployment.EjbDescriptor.visit(EjbDescriptor.java:2058)
> > at com.sun.enterprise.deployment.EjbBundleDescriptor.visit(EjbBundleDescriptor.java:734)
> > at com.sun.enterprise.deployment.Application.visit(Application.java:1754)
> > at com.sun.enterprise.deployment.archivist.ApplicationArchivist.validate(ApplicationArchivist.java:470)
> > at com.sun.enterprise.deployment.archivist.ApplicationArchivist.open(ApplicationArchivist.java:246)
> > at com.sun.enterprise.appclient.AppClientInfo.populateDescriptor(AppClientInfo.java:477)
> > at com.sun.enterprise.appclient.AppClientInfo.completeInit(AppClientInfo.java:171)
> > at com.sun.enterprise.appclient.AppClientInfoFactory.buildAppClientInfo(AppClientInfoFactory.java:149)
> > at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:366)
> > ... 15 more
> > Caused by: java.lang.ClassNotFoundException: de.quipsy.connector.kernel.api.outbound.KernelConnection
> > at com.sun.enterprise.loader.EJBClassLoader.findClassData(EJBClassLoader.java:737)
> > at com.sun.enterprise.loader.EJBClassLoader.findClass(EJBClassLoader.java:627)
> > at java.lang.ClassLoader.loadClass(Unknown Source)
> > at java.lang.ClassLoader.loadClass(Unknown Source)
> > at java.lang.ClassLoader.loadClassInternal(Unknown Source)
> > ... 28 more
> >
> > -----Original Message-----
> > From: Jagadish.Ramu_at_Sun.COM [mailto:Jagadish.Ramu_at_Sun.COM]
> > Sent: Donnerstag, 29. Mai 2008 12:16
> > To: users_at_glassfish.dev.java.net
> > Subject: Re: Why does the Client Container try to load a resource adapter'sConnection class?
> >
> > Can you post the exception stack traces?
> >
> > Thanks,
> > -Jagadish
> >
> >
> > On Thu, 2008-05-29 at 11:53 +0200, Markus Karg wrote:
> > > My EAR contains three modules:
> > >
> > >
> > >
> > > * ResourceAdapter, providing a custom interface
> > >
> > > * EJB-JAR, containing a session bean that accesses the resource
> > > adapter's customer interface internally; also providing EJB 2.1
> > > Compatibility View
> > >
> > > * Application Client, using EJB 2.1 Compatibility View of the session
> > > bean
> > >
> > >
> > >
> > > The application client has NO references to any part of the resource
> > > adapter. He is completely unaware of its existence. Neither is any
> > > class or interface of the resource adapter beeing passes to the client
> > > by the session bean, or accepted by the session bean as beeing passed
> > > from the client.
> > >
> > >
> > >
> > > The validator has 0 errors, 0 warnings, 0 infos. Also I can deploy and
> > > startup the server without any problem.
> > >
> > >
> > >
> > > But when I click on "Launch" to run the client using Web Start, then
> > > Web Start shows me a nice exception that it is unable to locate one of
> > > the classes contained in the custom interface of the ResourceAdapter.
> > > In the stack trace there is only com.* and java.* stuff mentioned, but
> > > none of my own classes.
> > >
> > >
> > >
> > > As soon as I added a copy of all classes of the custom interface into
> > > my client JAR, it starts up very well (and certainly never uses that
> > > class).
> > >
> > >
> > >
> > > Can somebody explain, why the client container wants to load that
> > > class? It obviously is never referenced anywhere in the client!
> > >
> > >
> > >
> > > Thanks
> > >
> > > Markus
> > >
> > >
> > >
> > > QUIPSY QUALITY GmbH & Co. KG
> > >
> > > Ein Unternehmen der MES-Gruppe
> > >
> > > Stuttgarter Strasse 23
> > >
> > > D-75179 Pforzheim
> > >
> > > Tel: 07231-9189-52
> > >
> > > Fax: 07231-9189-59
> > >
> > > www.quipsy.de
> > >
> > > karg_at_quipsy.de
> > >
> > > Registergericht Mannheim HRA 701214
> > >
> > > Geschäftsführer: Nils Schroeder
> > >
> > >
> > >
> > > Diese E-Mail enthält persönliche, vertrauliche und vor Weitergabe
> > > geschützte Informationen und ist ausschließlich für den vorgesehenen
> > > o.g. Empfänger (Adressaten) bestimmt. Falls Sie diese E-Mail
> > > versehentlich erhalten haben und nicht der vorgesehene Empfänger sind,
> > > bitten wir Sie, die E-Mail und deren Anhänge nicht aufzubewahren,
> > > nicht zu vervielfältigen, nicht zu nutzen und nicht weiterzugeben.
> > > Bitte informieren Sie uns als Absender über diesen Zustellungsfehler
> > > und löschen Sie die E-Mail.
> > >
> > >
> > >
> > >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> > For additional commands, e-mail: users-help_at_glassfish.dev.java.net
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> > For additional commands, e-mail: users-help_at_glassfish.dev.java.net
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>