geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: Is there a vendor independent way of accessing EJBs from a standalone client?
Date Thu, 22 Feb 2007 23:27:17 GMT

On Feb 22, 2007, at 3:13 PM, Ryan wrote:

> You're right, I didn't quite explain things 100%.  I would like to  
> have
> a .ear file that contains EJBs and a Swing client.  I would like to be
> able to deploy that .ear and have it work on Glassfish or Geronimo,  
> but
> don't want to change naming lookups, etc.
>
> I really just want to have the option of switching vendors at a later
> date.  I will always use a matching app server and client container  
> (ie:
> Geronimos AS with Geronimo ACC, or Glassfish AS with Glassfish ACC).

In that case you should be able to just use ejb-link or the  
equivalent annotation and have it just work on any compliant app  
server.  This works fine for j2ee 1.4 stuff in geronimo 1.x, I don't  
think its all working in 2.0 yet.  I'm sure it all works in glassfish  
as well.  If you are using jndi rather than injection you'll be  
looking up stuff in java:comp/env/....


thanks
david jencks

>
> Ryan
>
>
> Jencks wrote:
>> I'm unclear on whether you plan to run the app client on the same
>> vendors product as the ejb itself.
>>
>> If you plan to use  2 vendors you have to use corba.
>>
>> If you plan to use the app client container and the ejb container  
>> from
>> geronimo, what you are trying should work.  However for geronimo you
>> would have to have deployed the ejb application first (assuming it is
>> not packaged in an ear with the app client) and the ejb app would  
>> have
>> to be a parent of the client app.  Under these circumstances the
>> deployers should be able to find your ejb at deploy time and  
>> figure out
>> how to hook up to it when you run the app client.
>>
>> thanks
>> david jencks
>>
>> On Feb 22, 2007, at 1:46 AM, Ryan wrote:
>>
>>> Hi,
>>>
>>> I'm working at setting up an application client and am having some
>>> difficulty accessing EJBs on the server.  I'm running my client  
>>> using an
>>> application client container and am trying it out on a few different
>>> application servers.
>>>
>>> However, I'm having difficulty finding a way to lookup EJBs in a  
>>> vendor
>>> independent manner.  Specifically, almost every doc I can find  
>>> has some
>>> variation of:
>>>
>>> Context initialContext = new InitialContext();
>>> Object ref = initialContext.lookup("some vendor specific name  
>>> here");
>>>
>>> If I replace "some vendor specific name here" with the proper vendor
>>> specific name for each app server and re-deploy everything works.
>>>
>>> At first I thought I could use application-client.xml to name  
>>> each EJB
>>> and have the container(s) take care of the mapping, but I haven't  
>>> had
>>> any luck with this approach.  I tried something like this (relevant
>>> parts only):
>>>
>>> <ejb-ref>
>>>     <ejb-ref-name>ejb/test1234/ConnectionTester</ejb-ref-name>
>>>     <ejb-ref-type>Session</ejb-ref-type>
>>>     <remote>domain.ejb.interfaces.ConnectionTesterRemote</remote>
>>> </ejb-ref>
>>>
>>> When I deploy to Glassfish using the above I end up with a JNDI  
>>> name of
>>> "ejb/test1234/ConnectionTester" and can look it up using
>>> "java:comp/env/ejb/test1234/ConnectionTester".
>>>
>>> However, when I try to deploy to Geronimo, I get the following error
>>> (while deploying):
>>>
>>> org.apache.openejb.OpenEJBException: Cannot find bean
>>> "ejb/test1234/ConnectionTester" referenced by bean "GeronimoEnc".
>>>
>>> Obviously I'm missing something because Glassfish appears to use
>>> 'ejb-ref-name' as a type of alias for the EJB name while Geronimo  
>>> thinks
>>> it contains the name of an existing EJB.
>>>
>>> Maybe I'm just not thinking clearly tonight, but isn't there some  
>>> kind
>>> of simple, standard way of looking up an EJB from a standalone  
>>> client?
>>> Is vendor independence even a realistic goal (that's what the  
>>> spec is
>>> for right)?
>>>
>>> Thanks in advance for any help,
>>> Ryan
>>>
>>> P.S.  Sorry for the formatting :-(
>>>
>>
>


Mime
View raw message