ejb@glassfish.java.net

Re: Eclipse RCP client for Glassfish v2.1 using EJB3 -- Stacktrace for multi-plugin setup

From: Andreas Kozma <andreas.kozma_at_ansis.com>
Date: Thu, 7 May 2009 10:45:49 +0200

Kenneth, here is the stacktrace when trying to run with a separate
plugin containing GF jars and EJB jar, as well as the consuming jar:

May 7, 2009 10:42:59 AM com.sun.enterprise.util.ORBManager initORB
SEVERE: UTIL6009:Unexcpected Exception in createORB.
org.omg.CORBA.INITIALIZE: can't instantiate default ORB implementation
com.sun.corba.ee.impl.orb.ORBImpl vmcid: 0x0 minor code: 0
completed: No
        at org.omg.CORBA.ORB.create_impl(ORB.java:326)
        at org.omg.CORBA.ORB.init(ORB.java:365)
        at com.sun.enterprise.util.ORBManager.initORB(ORBManager.java:546)
        at com.sun.enterprise.util.ORBManager.getORB(ORBManager.java:278)
        at
com
.sun
.enterprise
.naming
.SerialInitContextFactory
.getInitialContext(SerialInitContextFactory.java:178)
        at
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
        at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:
247)
        at javax.naming.InitialContext.init(InitialContext.java:223)
        at javax.naming.InitialContext.<init>(InitialContext.java:197)
        at com.ansis.aef.ui.session.LookupTest3.testConnect(LookupTest3.java:
49)
        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:585)
        at junit.framework.TestCase.runTest(TestCase.java:164)
        at junit.framework.TestCase.runBare(TestCase.java:130)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:120)
        at junit.framework.TestSuite.runTest(TestSuite.java:230)
        at junit.framework.TestSuite.run(TestSuite.java:225)
        at
org
.eclipse
.jdt
.internal
.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:
130)
        at
org
.eclipse
.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at
org
.eclipse
.jdt
.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:
460)
        at
org
.eclipse
.jdt
.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:
673)
        at
org
.eclipse
.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:
386)
        at
org
.eclipse
.pde
.internal
.junit.runtime.RemotePluginTestRunner.main(RemotePluginTestRunner.java:
62)
        at org.eclipse.pde.internal.junit.runtime.UITestApplication
$1.run(UITestApplication.java:114)
        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
        at
org
.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:
133)
        at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3342)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3071)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2384)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200)
        at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495)
        at
org
.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:
288)
        at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:
490)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at
org
.eclipse
.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:
113)
        at
org
.eclipse
.pde
.internal.junit.runtime.UITestApplication.start(UITestApplication.java:
46)
        at
org
.eclipse
.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
        at
org
.eclipse
.core
.runtime
.internal
.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
        at
org
.eclipse
.core
.runtime
.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
        at
org
.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:
386)
        at
org
.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:
179)
        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:585)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
Caused by: java.lang.ClassCastException:
com.sun.corba.ee.impl.orb.ORBImpl
        at org.omg.CORBA.ORB.create_impl(ORB.java:324)
        ... 54 more

When all Jars and consuming classes are in one plugin, it all works.


Thanks.


Kind regards,

- Andreas Kozma
www.ansis.com



On May 7, 2009, at 10:31 , Andreas Kozma wrote:

> Thanks a lot for your quick answer, Kenneth. We managed to connect
> to GF as described in the #nonJavaEEwebcontainerRemoteEJB section of
> the EJB FAQ;
>
>
> 1.)
> - running a simple unit test (with a normal java classpath) worked
> like a charm
>
> - running an Eclipse RCP test app with one plugin worked as well. as
> each plugin has its own class loader, all classes in all four
> required GF jars (appserv-deployment-client.jar, appserv-ext.jar,
> appserv-rt.jar, javaee.jar) are visible in the plugin itself.
>
>
> - running with two plugins (where one plugin contains the four GF
> jars and the jar with the required EJB3 remote interfaces and entity
> beans, the other contains the actual functionality) doesn't work.
> Probably we export the wrong packages from the first Jar to the
> consuming plugin.
>
> Question: what packages from the four Jars need to be exported from
> the plugin containing the jars, so that the consuming plugin can run
> the lookup properly to access the EJBs? If you could give us a hint,
> it would save us many hours of trial-and-error. Good practise
> suggests only to export the required packages (ie. package from
> which classes need to be loaded by consuming plugin), rather than
> exporting hundreds of packages.
>
>
> 2.)
> In JBoss we needed to supply a jndi.properties file in the EAR or
> the EJB3 project. Is this required in GF? If yes, what is the
> format? We used
>
> java
> .naming
> .factory.initial=com.sun.enterprise.naming.SerialInitContextFactory
> java.naming.factory.url.pkgs=com.sun.enterprise.naming
> java.naming.provider.url=iiop://localhost:3700
>
> but I'm not sure it was required.
>
>
> 3.)
> Another question where we didn't find any hints on the web: how can
> you configure an fresh GF instance in batch mode? We have various GF
> instances running on developer machines, test servers, client
> deployments, etc and we would like to find a way to just run a
> script or modify a few xml files (like in JBoss). Everybody refers
> us to the Admin console, but that is not automatable.
>
>
>
> PS: Once all this works, we would be happy to contribute our
> experiences into an updated FAQ to save everybody trying to run RCP
> clients with GF a lot of time.
>
>
>
>
> Thanks in advance and kind regards,
>
> - Andreas Kozma
> www.ansis.com
>
> <ansis_logo.gif>
>
> On May 6, 2009, at 9:10 , Kenneth Saks wrote:
>
>>
>> On May 6, 2009, at 2:18 PM, Andreas Kozma wrote:
>>
>>> Hi Glassfish users!
>>>
>>> We are developing a 300k line EJB3 application using JBoss AS and
>>> the Eclipse RCP platform for our Rich client.
>>>
>>> We would like to move our application server to Glassfish, but we
>>> have difficulty getting our rich client to connect to the AS by
>>> following the instructions on the glassfish: EJB FAQ.
>>>
>>> We have the following problems/questions:
>>>
>>> - is anybody of you using Eclipse RCP to develop your rich client?
>>> if yes, which JARs do put into the plugin containing the server
>>> classes? which packages do export? We were getting all sorts of
>>> strange class cast and verify errors when trying to set the
>>> standalone client mode.
>>>
>>> - as our RCP client needs to run on an unforeseen number of client
>>> machines, we need to be able to set the host name in the login
>>> panel. How do we pass it to the InitialContext?
>>
>> Hi Andreas,
>>
>> The easiest approach is to set the the host as -
>> Dorg.omg.CORBA.ORBInitialHost=<server> when starting the stand-
>> alone client JVM. If you can't do that for whatever reason, then
>> follow the instructions in https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html
>> #nonJavaEEwebcontainerRemoteEJB.
>>
>>
>>> We tried [ env.setProperty(Context.PROVIDER_URL, "iiop://
>>> localhost:3700"); ]
>>
>> You shouldn't use this property with Glassfish's naming provider.
>>
>>>
>>> - is there a way to run an Eclipse or NetBeans RCP app as an
>>> Application Client Component that can directly inject EJB3
>>> resources?
>>
>> There's a separate appclient command for running application client
>> components in GlassFish. I don't know if the IDEs integrate with
>> that.
>>
>>>
>>>
>>>
>>> Thank you very much for your help!
>>>
>>>
>>> Kind regards,
>>>
>>> - Andreas Kozma
>>> www.ansis.com
>>>
>>> <ansis_logo.gif>
>>>
>>
>>
>> --
>> This message has been scanned for viruses and
>> dangerous content by MailScanner, and is
>> believed to be clean.
>
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.