Below, you find the Java code related to the call of EJB in remoting way.

try {
        Properties properties =  new Properties();
        properties.put(Context.INITIAL_CONTEXT_FACTORY,
"org.openejb.client.RemoteInitialContextFactory");
        properties.put(Context.PROVIDER_URL, "ejbd://localhost:" + "4202");

        InitialContext context = new InitialContext(properties);
                        
        NamingEnumeration<Binding> listBindings = context.listBindings("");
        Map<String, Object> map = new HashMap<String, Object>();
        while (listBindings.hasMoreElements()) {
                Binding pair = listBindings.nextElement();
                System.out.println(pair.getName());
//              map.put(pair.getName(), pair.getObject());
        }
                        
        Object ref = context.lookup("EchoImplRemote");
                        
        } catch (Exception e) {
                e.printStackTrace();
        }
}

I can't to lookup object because a nullpointer exception is thrown. But i
can enumerate EJB naming.

.
EchoImplRemote
EJBBonjourRemote
java.lang.NullPointerException
        at
org.apache.openejb.client.JNDIContext.createBusinessObject(JNDIContext.java:203)
        at org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:247)
        at javax.naming.InitialContext.lookup(InitialContext.java:392)
        at test.openejb.remote.StandaloneClient.main(StandaloneClient.java:84)
        

>From the OpenEJB server side log, i notice that there is one method have
been invoked

INFO - invoking method create on EchoImpl
DEBUG - finished invoking method create. Return
value:proxy=fr.ensma.lisi.testejbbundle.Echo;deployment=EchoImpl;pk=null
DEBUG - JNDI REQUEST: JNDI_LOOKUP:null:EchoImplRemote -- RESPONSE:
JNDI_BUSINESS_OBJECT:STATELESS:EchoImpl:fr.ensma.lisi.testejbbundle.Echo
DEBUG - JNDI REQUEST: JNDI_LOOKUP:null:EchoImplRemote -- RESPONSE:
JNDI_BUSINESS_OBJECT:STATELESS:EchoImpl:fr.ensma.lisi.testejbbundle.Echo
        
As you can see, pk value is null 
        
Thanks a lot

Mickael



Jonathan Gallimore-2 wrote:
> 
> That looks good to me- I did have a look around the code, and your  
> suggestion was pretty much what I was thinking. I didn't get enough  
> time to get it working due to work commitments. I'm away for a couple  
> of days, but will keep playing with this if I can.
> 
> Can you send the stack trace for your NullPointerException?
> 
> Cheers,
> 
> Jon
> 
> Sent from my iPhone
> 
> On 13 Jun 2009, at 08:38, Keulkeul <[email protected]> wrote:
> 
>>
>> Hi,
>>
>> I just noticed that to try to execute OpenEJB container in remotable
>> context, i was creating new InitialContext object (with
>> openejb.embedded.remotable key initialization) into the start method  
>> of the
>> TestEJB bundle.
>>
>> Bundle bundle = context.getBundle();
>> OpenEjbApplication application = new OpenEjbApplication(bundle);
>> context.registerService(OpenEjbApplication.class.getName(),  
>> application,
>> null);
>>
>> // New Instructions ...
>> Properties properties = new Properties();
>> properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,
>> "org.apache.openejb.client.LocalInitialContextFactory");
>> properties.setProperty("openejb.embedded.remotable", "true");
>>
>> new InitialContext(properties);
>>
>> I think it is wrong way, because i suppose that the
>> openejb.embedded.remotable parameter must be activated into the  
>> classes of
>> the org.apache.openejb.server bundle.
>>
>> So now, i am trying to create an EJBD server in explicity way.  
>> Thanks to the
>> JUnit class tests of OpenEJB, i have created an EJBD server into the
>> OpenEJBServer class of the org.apache.openejb.server bundle, like  
>> this:
>>
>> public void init(File baseDir) throws OpenEJBException {
>>    ...
>>    properties.put("openejb.home", homeDir.getAbsolutePath());
>>    properties.put("openejb.base", baseDir.getAbsolutePath());
>>    properties.put("openejb.configuration",  
>> configFile.getAbsolutePath());
>>    properties.put("openejb.deployments.classpath", "false");
>>
>>    OpenEJB.init(properties);
>>
>>    EjbServer ejbServer = new EjbServer();
>>    Properties initProps = new Properties();
>>    try {
>>        ejbServer.init(initProps);
>>        ServiceDaemon serviceDaemon = new ServiceDaemon(ejbServer, 0,
>> "localhost");
>>        serviceDaemon.start();
>>    } catch (Exception e) {
>>        e.printStackTrace();
>>    }
>> }
>>
>> So, the EJBD server is created. I can connect a standalone  
>> application to
>> EJBD protocol (it's working), i can enumerate EJB naming (it's  
>> working).
>>
>> But i can't to lookup object because a nullpointer exception is  
>> thrown. I
>> suppose the classpath isn't initialized into the EJBD server  
>> configuration
>> ...
>>
>> Do you think i'm crazy to do like this ?
>>
>> Mickael
>>
>>
>> Jonathan Gallimore-2 wrote:
>>>
>>> That's a total guess on my part. I'm going have a quick play around  
>>> with
>>> this now, I'll let you know if I get it going :)
>>>
>>> Jon
>>>
>>> On Thu, Jun 11, 2009 at 8:26 PM, Keulkeul <[email protected]>  
>>> wrote:
>>>
>>>>
>>>> Hi Jonathan,
>>>>
>>>> Thanks for your replying.
>>>>
>>>> Your said "so I suspect that either the setting you're applying  
>>>> isn't
>>>> being
>>>> passed through to the OpenEJB server in the bundle". I don't think  
>>>> so
>>>> because when i'm setting InitialContext with  
>>>> openejb.embedded.remotable
>>>> key
>>>> value, it is taken into account because the following message is
>>>> displaying
>>>>
>>>> ** Starting Services **
>>>> NAME                 IP              PORT
>>>>
>>>> Mickael
>>>>
>>>>
>>>>
>>>> Jonathan Gallimore-2 wrote:
>>>>>
>>>>> I had to comment something out in terms of applying properties to  
>>>>> the
>>>>> embedded OpenEJB in the code I put up on my people.apache.org  
>>>>> page, as
>>>> I
>>>>> was
>>>>> getting a ConcurrentModificationException with the code left in,  
>>>>> so I
>>>>> suspect that either the setting you're applying isn't being passed
>>>> through
>>>>> to the OpenEJB server in the bundle.
>>>>>
>>>>> I'll have a poke around the code this evening and see if I can  
>>>>> get it
>>>>> working with remotable working.
>>>>>
>>>>> Jon
>>>>>
>>>>> On Wed, Jun 10, 2009 at 3:45 PM, Keulkeul <[email protected]>
>>>> wrote:
>>>>>
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I am using OpenEJB 3.1.1 with the Equinox OSGi container thanks to
>>>> this
>>>>>> post
>>>>>> (http://openejb.apache.org/osgi-openejb.html) and this topic
>>>>>> (http://www.nabble.com/OpenEJB-and-OSGi-td23423565.html#a23423565)
>>>>>> related
>>>>>> to the OpenEJB OSGi integration. I can create one bundle with  
>>>>>> several
>>>> EJB
>>>>>> stateless POJOs and it is working fine.
>>>>>>
>>>>>> So now, i would like to implement WebServices in using EJB  
>>>>>> Stateless
>>>>>> annoted
>>>>>> with the @stateless and @Webservice instructions (like  
>>>>>> HelloEjbService
>>>>>> class
>>>>>> example located into the openejb-examples-3.1 examples package).
>>>>>>
>>>>>> However, i have a problem during the initialization of the OpenEJB
>>>>>> InitialContext. I suppose that OpenEJB must be executed in  
>>>>>> remotable
>>>>>> context, so openejb.embedded.remotable key is fixed to true value.
>>>> But,
>>>>>> no
>>>>>> server (httpejbd, ejbd) have been created.
>>>>>>
>>>>>> With OpenEJB OSGi integration i'm getting
>>>>>>
>>>>>> ** Starting Services **
>>>>>> NAME                 IP              PORT
>>>>>>
>>>>>> In opposition, without OpenEJB OSGi integration i was getting
>>>>>>
>>>>>> ** Starting Services **
>>>>>> NAME                 IP              PORT
>>>>>> httpejbd             127.0.0.1       4204
>>>>>> admin thread         127.0.0.1       4200
>>>>>> ejbd                 localhost       4202
>>>>>>
>>>>>> In fact, i would like your opinion about this issue.
>>>>>>
>>>>>> Is anybody test another kind of EJB into OpenEJB OSGi  
>>>>>> integration like
>>>>>> WebService ? or just calling EJBs declared into a bundle in  
>>>>>> remote way
>>>> ?
>>>>>>
>>>>>> Mickael
>>>>>> --
>>>>>> View this message in context:
>>>>>>
>>>> http://www.nabble.com/OpenEJB%2C-OSGi-and-OpenEJB3%27s-remoting-capabilities-tp23963809p23963809.html
>>>>>> Sent from the OpenEJB User mailing list archive at Nabble.com.
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/OpenEJB%2C-OSGi-and-OpenEJB3%27s-remoting-capabilities-tp23963809p23987456.html
>>>> Sent from the OpenEJB User mailing list archive at Nabble.com.
>>>>
>>>>
>>>
>>>
>>
>> -- 
>> View this message in context:
>> http://www.nabble.com/OpenEJB%2C-OSGi-and-OpenEJB3%27s-remoting-capabilities-tp23963809p24010064.html
>> Sent from the OpenEJB User mailing list archive at Nabble.com.
>>
> 
> 

-- 
View this message in context: 
http://www.nabble.com/OpenEJB%2C-OSGi-and-OpenEJB3%27s-remoting-capabilities-tp23963809p24011365.html
Sent from the OpenEJB User mailing list archive at Nabble.com.

Reply via email to