You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by Rniamo <rn...@gmail.com> on 2011/01/04 22:33:43 UTC
openejb client & OSGi
Hi,
i'm trying to use openejb client in an OSGi environment (ServiceMix),
my server works, my client works in classical environment but in OSGi an
exception is thrown:
Caused by: java.lang.ExceptionInInitializerError
at
org.apache.openejb.client.EJBObjectHandler.createEJBObjectProxy(EJBObjectHandler.java:107)
at
org.apache.openejb.client.JNDIContext.createBusinessObject(JNDIContext.java:191)
at org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:232)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at sample.client.Client.call(Client.java:25)
at sample.client.Client.<init>(Client.java:13)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at
org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:100)
... 20 more
Caused by: java.lang.RuntimeException: No ProxyFactory Can be installed.
Unable to load the class org.apache.openejb.client.proxy.Jdk13ProxyFactory.
at
org.apache.openejb.client.proxy.ProxyManager.<clinit>(ProxyManager.java:62)
... 31 more
My client is simple:
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,
RemoteInitialContextFactory.class.getName());
p.put(Context.PROVIDER_URL, "ejbd://localhost:4201");
Context ctx = new InitialContext(p);
And my MANIFEST.MF contains:
Manifest-Version: 1.0
Built-By: rniamo
Build-Jdk: 1.6.0_22
Bundle-Version: 1.0.0
Tool: Bnd-0.0.357
Bundle-Name: Unnamed - sample-osgi-openejb:sample-client:bundle:1.0
Bnd-LastModified: 1294176199006
Created-By: Apache Maven Bundle Plugin
Bundle-ManifestVersion: 2
Bundle-SymbolicName: sample-osgi-openejb.sample-client
Import-Package: javax.naming,org.apache.openejb.client;version="3.1.4"
It sounds like a class loading problem but i don't see how to correct it
easily (i tried to add the proxy package but i have a class not found
exception on the ProxyManager class). Did openejb-client already work in
OSGi?
Rniamo
Re: openejb client & OSGi
Posted by Rniamo <rn...@gmail.com>.
it works adding in my api manifest the following imports
org.apache.openejb.client;version="3.1",org.apache.openejb.client.proxy;version="3.1"
Rniamo
On Wed, Jan 5, 2011 at 8:13 AM, Rniamo <rn...@gmail.com> wrote:
> I've found that the interface classloader is used to create the proxy when
> i do a remote call. In my case, i have a specific bundle with the interface
> (an api bundle ;)) so it doesn't import any specific openejb packages. I
> think it is the problem.
>
> Rniamo
>
>
>
> On Tue, Jan 4, 2011 at 10:33 PM, Rniamo <rn...@gmail.com> wrote:
>
>> Hi,
>>
>> i'm trying to use openejb client in an OSGi environment (ServiceMix),
>>
>> my server works, my client works in classical environment but in OSGi an
>> exception is thrown:
>>
>> Caused by: java.lang.ExceptionInInitializerError
>> at
>> org.apache.openejb.client.EJBObjectHandler.createEJBObjectProxy(EJBObjectHandler.java:107)
>> at
>> org.apache.openejb.client.JNDIContext.createBusinessObject(JNDIContext.java:191)
>> at org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:232)
>> at javax.naming.InitialContext.lookup(InitialContext.java:392)
>> at sample.client.Client.call(Client.java:25)
>> at sample.client.Client.<init>(Client.java:13)
>> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>> Method)
>> at
>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>> at
>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>> at
>> org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:100)
>> ... 20 more
>> Caused by: java.lang.RuntimeException: No ProxyFactory Can be installed.
>> Unable to load the class org.apache.openejb.client.proxy.Jdk13ProxyFactory.
>> at
>> org.apache.openejb.client.proxy.ProxyManager.<clinit>(ProxyManager.java:62)
>> ... 31 more
>>
>> My client is simple:
>>
>> Properties p = new Properties();
>> p.put(Context.INITIAL_CONTEXT_FACTORY,
>> RemoteInitialContextFactory.class.getName());
>> p.put(Context.PROVIDER_URL, "ejbd://localhost:4201");
>> Context ctx = new InitialContext(p);
>>
>> And my MANIFEST.MF contains:
>>
>> Manifest-Version: 1.0
>> Built-By: rniamo
>> Build-Jdk: 1.6.0_22
>> Bundle-Version: 1.0.0
>> Tool: Bnd-0.0.357
>> Bundle-Name: Unnamed - sample-osgi-openejb:sample-client:bundle:1.0
>> Bnd-LastModified: 1294176199006
>> Created-By: Apache Maven Bundle Plugin
>> Bundle-ManifestVersion: 2
>> Bundle-SymbolicName: sample-osgi-openejb.sample-client
>> Import-Package: javax.naming,org.apache.openejb.client;version="3.1.4"
>>
>> It sounds like a class loading problem but i don't see how to correct it
>> easily (i tried to add the proxy package but i have a class not found
>> exception on the ProxyManager class). Did openejb-client already work in
>> OSGi?
>>
>> Rniamo
>
>
>
Re: openejb client & OSGi
Posted by Rniamo <rn...@gmail.com>.
I've found that the interface classloader is used to create the proxy when i
do a remote call. In my case, i have a specific bundle with the interface
(an api bundle ;)) so it doesn't import any specific openejb packages. I
think it is the problem.
Rniamo
On Tue, Jan 4, 2011 at 10:33 PM, Rniamo <rn...@gmail.com> wrote:
> Hi,
>
> i'm trying to use openejb client in an OSGi environment (ServiceMix),
>
> my server works, my client works in classical environment but in OSGi an
> exception is thrown:
>
> Caused by: java.lang.ExceptionInInitializerError
> at
> org.apache.openejb.client.EJBObjectHandler.createEJBObjectProxy(EJBObjectHandler.java:107)
> at
> org.apache.openejb.client.JNDIContext.createBusinessObject(JNDIContext.java:191)
> at org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:232)
> at javax.naming.InitialContext.lookup(InitialContext.java:392)
> at sample.client.Client.call(Client.java:25)
> at sample.client.Client.<init>(Client.java:13)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at
> org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:100)
> ... 20 more
> Caused by: java.lang.RuntimeException: No ProxyFactory Can be installed.
> Unable to load the class org.apache.openejb.client.proxy.Jdk13ProxyFactory.
> at
> org.apache.openejb.client.proxy.ProxyManager.<clinit>(ProxyManager.java:62)
> ... 31 more
>
> My client is simple:
>
> Properties p = new Properties();
> p.put(Context.INITIAL_CONTEXT_FACTORY,
> RemoteInitialContextFactory.class.getName());
> p.put(Context.PROVIDER_URL, "ejbd://localhost:4201");
> Context ctx = new InitialContext(p);
>
> And my MANIFEST.MF contains:
>
> Manifest-Version: 1.0
> Built-By: rniamo
> Build-Jdk: 1.6.0_22
> Bundle-Version: 1.0.0
> Tool: Bnd-0.0.357
> Bundle-Name: Unnamed - sample-osgi-openejb:sample-client:bundle:1.0
> Bnd-LastModified: 1294176199006
> Created-By: Apache Maven Bundle Plugin
> Bundle-ManifestVersion: 2
> Bundle-SymbolicName: sample-osgi-openejb.sample-client
> Import-Package: javax.naming,org.apache.openejb.client;version="3.1.4"
>
> It sounds like a class loading problem but i don't see how to correct it
> easily (i tried to add the proxy package but i have a class not found
> exception on the ProxyManager class). Did openejb-client already work in
> OSGi?
>
> Rniamo