geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vrm <vijes...@gmail.com>
Subject Re: jndi lookup in remote client for geronimo v2
Date Fri, 14 Sep 2007 20:16:18 GMT

Thanks for the examples - Is there any difference between the Context Lookup
in an EJB-JAR vs an EAR ?

I'm still getting a naming exception and I followed both the examples
exactly. Here are some files associated with my configuration =

---------------
If my geronimo-application.xml =

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://geronimo.apache.org/xml/ns/j2ee/application-1.2">
	<environment xmlns="http://geronimo.apache.org/xml/ns/deployment-1.2">
        <moduleId>
            <groupId>com.mydomain.ejbtest</groupId>
            <artifactId>EjbTest</artifactId>
            <version>1.0o</version>
            <type>ear</type>
        </moduleId>
    </environment>
</application>

---------------
openejb-jar.xml =

<?xml version="1.0" encoding="UTF-8"?>
<openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1">
	<environment xmlns="http://geronimo.apache.org/xml/ns/deployment-1.2">
		<moduleId>
			<groupId>com.mydomain.ejbtest</groupId>
			<artifactId>TheEJB</artifactId>
			<version>1.1</version>
			<type>car</type>
		</moduleId>
		<dependencies>
            <dependency>
	            <groupId>com.mydomain.ejbtest</groupId>
	            <artifactId>MyQueueConnectionFactory</artifactId>
            	<version>1.0</version>
	            <type>rar</type>
        	</dependency>
            <dependency>
                <groupId>com.mydomain.ejbtest</groupId>
                <artifactId>MysqlDatabase</artifactId>
            	<version>1.0</version>
	            <type>rar</type>
            </dependency>
		</dependencies>
		<hidden-classes/>
		<non-overridable-classes/>
	</environment>
</openejb-jar>


---------------
The EJB Bean =

@Stateless(name="TheBean")
@Remote(TheInterface.class)
public class TheBean implements TheInterface{


---------------
The Interface =

@Remote
public interface TheInterface {


---------------
The Client =

Properties ejbprop = new Properties();
ejbprop.put("java.naming.factory.initial","org.apache.openejb.client.RemoteInitialContextFactory");
ejbprop.put("java.naming.provider.url", "ejbd://127.0.0.1:4201");
javax.naming.InitialContext ctx = new javax.naming.InitialContext(EJBprops);
TheInterface obj =
(TheInterface)ctx.lookup("TheEJB/TheBean/com.mydomain.ejbtest.TheInterface");



				

Jarek Gawor-2 wrote:
> 
> I have some tests in Geronimo that might help.
> 
> If you have a EJB 2.x take a look at:
> http://svn.apache.org/viewvc/geronimo/server/trunk/testsuite/webservices-testsuite/jaxrpc-tests/jaxrpc-ejb/
> 
> And for the client take a look at the testEJB() function in
> http://svn.apache.org/viewvc/geronimo/server/trunk/testsuite/webservices-testsuite/jaxrpc-tests/jaxrpc-ejb/src/test/java/org/apache/geronimo/testsuite/testset/JaxRPCTest.java?view=markup
> 
> If you have EJB 3.0 take a look at:
> http://svn.apache.org/viewvc/geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-tests/jaxws-ejb/
> 
> And for the client take a look at the testEJB() function in
> http://svn.apache.org/viewvc/geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-tests/jaxws-ejb/src/test/java/org/apache/geronimo/testsuite/testset/JaxWSTest.java?view=markup
> 
> Jarek
> 
> On 9/14/07, vrm <vijeshmehta@hotmail.com> wrote:
>>
>> I'm having the exact same issue. I've spent 2 days looking around and
>> there
>> is no examples or documentations available for a Remote openejb client
>> accessing an EJB on Geronimo 2.
>>
>> Anybody have an EAR for Geronimo2 and an Openejb-Client app accessing it?
>>
>> The Exception I get =
>> javax.naming.NameNotFoundException: /TheBean does not exist in the
>> system.
>> Check that the app was successfully deployed.
>>
>> I've tried the following for InitialContext.lookup =
>> (artifactid)/(TheBean)/(TheInterface)
>> (artifactid)/(Interface)
>> (ejbBean)/(Interface)
>> (artifactid)/(TheBean)/(Full Path to Interface)
>> ...and many more variations of this
>>
>>
>> My EJB Interface =
>>
>> @Remote
>> public interface TheInterface {
>>
>>
>> My Bean =
>> @Stateless
>> public class TheBean implements TheInterface {
>>
>>
>> Anybody get this to work or have examples, please post.
>>
>>
>>
>>
>> Xiao-fei Song wrote:
>> >
>> > Hi,
>> >
>> > Just wanted to let you know I modified a little bit about the code:
>> >
>> >         props.setProperty("java.naming.factory.initial",
>> > "org.apache.openejb.client.RemoteInitialContextFactory");
>> >         props.setProperty("java.naming.provider.url",
>> "127.0.0.1:4201");
>> >         props.setProperty("java.naming.security.principal", "system");
>> >         props.setProperty("java.naming.security.credentials",
>> "manager");
>> >
>> >         Context ic = new InitialContext(props);
>> >         System.out.println("ic = " + ic);
>> >
>> >         Object objRef = ic.lookup("MySessionRemoteHome");
>> >         System.out.println("objRef = " + objRef);
>> >
>> >         test.abc.MySessionRemoteHome home =
>> > (test.abc.MySessionRemoteHome)PortableRemoteObject.narrow(objRef,
>> > test.abc.MySessionRemoteHome.class);
>> >         System.out.println("home = " + home);
>> >
>> >         test.abc.MySessionRemote remote = home.create();
>> >         System.out.println("remote = " + remote);
>> >
>> >         String message = remote.getString();
>> >         System.out.println("message = " + message);
>> >
>> >
>> > and it works okay on geronimo 1.2 beta. So this really makes me
>> confused,
>> > is this a regression or intended to be. Can someone in this alias
>> please
>> > respond me?
>> >
>> > Thanks,
>> > Chris
>> >
>> >
>> > Xiao-fei Song wrote:
>> >>
>> >> Hi Mark,
>> >>
>> >> Thanks for your response.
>> >>
>> >> 1. For the time being, I don't really care if the client is really
>> >> "remote". From my tests, it looks like only "127.0.0.1" is accepted
>> >> otherwise the connects just failed. I don't know where the
>> documentation
>> >> can be found on this.
>> >>
>> >> 2. Yes I assume all the libraries are there for the EJB call. And they
>> >> are:
>> >>
>> >> cglig-nodep
>> >> geronimo-kernel
>> >> openejb-core
>> >> openejb-client
>> >> j2ee.jar (from j2ee ri)
>> >>
>> >> 3. Unfortunately it does not work with "ejb/MySessionRemoteHome" and
>> here
>> >> is what I got:
>> >>
>> >> ic = javax.naming.InitialContext@1e51060
>> >> Exception in thread "main" javax.naming.NameNotFoundException:
>> >> /ejb/MySessionRemoteHome does not exist in the system.  Check that the
>> >> app was successfully deployed.
>> >>         at
>> >> org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:231)
>> >>         at javax.naming.InitialContext.lookup(Unknown Source)
>> >>         at apachegclient.TestClient.main(TestClient.java:43)
>> >>
>> >>
>> >> I would say my first experiences with Genonimo is frustrated because I
>> >> just spent a whole day on a very simple task. Anyway, if you have the
>> >> sample code (both the ejb and the ejb client) that works with geronimo
>> >> v2, please send it to my email address.
>> >>
>> >> Thanks,
>> >> Chris
>> >>
>> >>
>> >>
>> >> Mark Aufdencamp wrote:
>> >>>
>> >>> Hi Chris,
>> >>>
>> >>> I'll give it a shot at helping you.  I've been able to do this thanks
>> to
>> >>> much help from others on this list.
>> >>>
>> >>> Are you truly doing this as a remote client from a different machine
>> >>> than the server?  If so, the IP addres your using for the naming
>> >>> provider should be the server address, rather than the local loopback
>> >>> address.
>> >>>
>> >>> Do you have all of the required remote client libraries in the class
>> >>> path for the remote EJB call?  I can look back at my notes and
>> provide
>> >>> these if you need them.
>> >>>
>> >>> I believe the remote name will probably be proceeded by "ejb".  As in
>> >>> "ejb/MySessionRemoteHome".
>> >>>
>> >>> I can dig up some code of my own that works if you'ld like.
>> >>>
>> >>> Hope this helps some.
>> >>>
>> >>> Mark Aufdencamp
>> >>> Mark@Aufdencamp.com
>> >>>
>> >>>> -------- Original Message --------
>> >>>> Subject: jndi lookup in remote client for geronimo v2
>> >>>> From: Xiao-fei Song <xfsong_chris@yahoo.com>
>> >>>> Date: Fri, June 29, 2007 7:04 am
>> >>>> To: user@geronimo.apache.org
>> >>>>
>> >>>> Hi guys,
>> >>>>
>> >>>> I have developed an EJB 2.x stateless session using netbeans, and
I
>> >>>> want to write a very simple stand alone ejb client to access it
in
>> >>>> geronimo v2. The code looks like below:
>> >>>>
>> >>>>
>> >>>>         props.setProperty("java.naming.factory.initial",
>> >>>> "org.openejb.client.RemoteInitialContextFactory");
>> >>>>         props.setProperty("java.naming.provider.url",
>> >>>> "127.0.0.1:4201");
>> >>>>         //props.setProperty("java.naming.security.principal",
>> >>>> "testuser");
>> >>>>         //props.setProperty("java.naming.security.credentials",
>> >>>> "testpassword");
>> >>>>
>> >>>>         Context ic = new InitialContext(props);
>> >>>>         System.out.println("ic = " + ic);
>> >>>>
>> >>>>         Object objRef = ic.lookup("MySessionRemoteHome");
>> >>>>
>> >>>> I read the documentation and it looks like the only way to lookup
in
>> >>>> the remote client is through jndi-name in openejb-jar.xml. And I
>> have
>> >>>> done that as below:
>> >>>>
>> >>>> <?xml version="1.0"?>
>> >>>>   <openejb-jar
>> >>>>     xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1"
>> >>>>     xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.1"
>> >>>>     xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2">
>> >>>>
>> >>>>    <enterprise-beans>
>> >>>>       <session>
>> >>>>         <ejb-name>MySessionBean</ejb-name>
>> >>>>         <jndi-name>MySessionRemoteHome</jndi-name>
>> >>>>       </session>
>> >>>>     </enterprise-beans>
>> >>>>   </openejb-jar>
>> >>>>
>> >>>> After the ejb is deployed to geronimo, I ran the client and found
>> >>>> below error:
>> >>>>
>> >>>> ic = javax.naming.InitialContext@1e51060
>> >>>> Exception in thread "main" javax.naming.NameNotFoundException:
>> >>>> /MySessionRemoteHome does not exist in the system.  Check that the
>> app
>> >>>> was successfully deployed.
>> >>>>         at
>> >>>> org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:231)
>> >>>>         at javax.naming.InitialContext.lookup(Unknown Source)
>> >>>>         at apachegclient.TestClient.main(TestClient.java:43)
>> >>>>
>> >>>>
>> >>>> Anyone has any idea what's going on?
>> >>>>
>> >>>> Thanks,
>> >>>> Chris
>> >>>>
>> >>>>
>> >>>> ---------------------------------
>> >>>> Ready for the edge of your seat? Check out tonight's top picks on
>> >>>> Yahoo! TV.
>> >>>>
>> >>>> ---------------------------------
>> >>>> Now that's room service! Choose from over 150,000 hotels
>> >>>> in 45,000 destinations on Yahoo! Travel to find your fit.
>> >>>
>> >>>
>> >>>
>> >>
>> >>
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/jndi-lookup-in-remote-client-for-geronimo-v2-tf3999496s134.html#a12680611
>> Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/jndi-lookup-in-remote-client-for-geronimo-v2-tf3999496s134.html#a12682887
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.


Mime
View raw message