Hey there,
I have two session beans deployed in a separate jars on separate jboss
instances running on two different hosts.
These session beans have the same jndi name.
Both beans have method defined testMethod() which returns name of the host,
this bean is deployed at.
Both beans also have a runTest() method which executes testMethod() from both
session beans (using remote interfaces) from different hosts.
I am invoking runTest() method on one of the beans, which results in two calls
to testMethod() method from the same bean!
Problem is, that since both sessions have the same JNDI name, and even though
they are located on different hosts, testMethod() gets invoked from the same
host where runTest() method is running.
How do I overcome this problem ?
Im running jboss in the default configuration and it is crucial to have those
beans under the same JNDI name.
Sample code is below
Session bean methods
| public String testMethod() throws TestComponentException
| {
| System.out.print("Entered testMethod()");
| String hostname;
| try
| {
| hostname = InetAddress.getLocalHost().getHostName();
| }
| catch (UnknownHostException he)
| {
| hostname = "localhost";
| }
| return hostname;
| }
|
| public String runTest() throws TestComponentException
| {
| String result = "";
| try
| {
| Properties props = new Properties();
|
| props.remove(Context.PROVIDER_URL);
| props.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
|
| props.put(Context.URL_PKG_PREFIXES,
"org.jboss.naming:org.jnp.interfaces");
|
| InitialContext ctx = new InitialContext(props);
|
| Object object = ctx.lookup("jnp://192.168.0.110/TestComponent");
|
| TestComponentHome eventManagerHome = (TestComponentHome)
PortableRemoteObject.narrow(object, TestComponentHome.class);
|
| TestComponent eventManager = eventManagerHome.create();
|
| result +=("p: " + eventManager.testMethod());
|
| Properties props2 = new Properties();
| props2.remove(Context.PROVIDER_URL);
|
| props2.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
|
| props2.put(Context.URL_PKG_PREFIXES,
"org.jboss.naming:org.jnp.interfaces");
|
| InitialContext ctx2 = new InitialContext(props2);
|
| Object object2 =
ctx2.lookup("jnp://192.168.0.120/TestComponent");
|
| TestComponentHome eventManagerHome2 = (TestComponentHome)
PortableRemoteObject.narrow(object2, TestComponentHome.class);
|
| TestComponent eventManager2 = eventManagerHome2.create();
|
| result +=(" m: " + eventManager2.testMethod());
|
|
| System.out.print(result);
|
| }
| catch (Exception e)
| {
| e.printStackTrace();
| throw new TestComponentException(e);
| }
| return result;
| }
|
Client call
Properties props = new Properties();
|
| props.remove(Context.PROVIDER_URL);
| //props.put(Context.PROVIDER_URL, "sa-provisioning");
|
| props.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
|
| props.put(Context.URL_PKG_PREFIXES,
"org.jboss.naming:org.jnp.interfaces");
|
| InitialContext ctx = new InitialContext(props);
|
| Object object = ctx.lookup("jnp://192.168.0.110/TestComponent");
|
| TestComponentHome eventManagerHome = (TestComponentHome)
PortableRemoteObject.narrow(object, TestComponentHome.class);
| //TestComponentHome eventManagerHome = (TestComponentHome)
object;
|
| TestComponent eventManager = eventManagerHome.create();
|
| System.out.println("calling runTest() from provisioning
results: " + eventManager.runTest());
This code result in two System.out.printlines - "Entered testMethod()" on the
192.168.0.110 hosts, as opposed to one line on both hosts.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3933599#3933599
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3933599
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user