Skip to main content

How can I access an ejb in another Glassfish server?

Please note these java.net forums are being decommissioned and use the new and improved forums at https://community.oracle.com/community/java.
No replies
javdever
Offline
Joined: 2013-08-20

For test purpose I have created two projects.

1. Project: HelloServer with the following files

1. File: HelloService.java

		package org.testejb;

import javax.ejb.Remote;

@Remote
public interface HelloService {
String sayHello(String name);
}

2. File: HelloServiceImpl.java
		package org.testejb;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.inject.Named;

@Stateless
@Named
@LocalBean
public class HelloServiceImpl implements HelloService{

@Override
public String sayHello(String name) {
return "Hello " + name;
}

}

2. Project: HelloClient

1. File: HelloService.java

		package org.testejb;

import javax.ejb.Remote;

@Remote
public interface HelloService {
String sayHello(String name);
}

2. File: TestHelloService.java
		package org.testejb.client;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;

import org.testejb.HelloService;

@ManagedBean
public class TestHelloService {

@EJB
HelloService service;

public String sayHello() {
return service.sayHello("Test User");
}
}

3. File: sayHello.xhtml
		<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">

<h:body>
<h1>Output: #{testHelloService.sayHello()}</h1>
</h:body>
</html>

If both projects are running in the same glassfish instance then it works fine. The output of sayHello.xhtml is "Hello Test User".
And now my question:

I have two glassfish instances I1 & I2. I1 running on my localhost:8080 and I2 in a vm with the url 192.168.100.199:8080.
In I1 is deployed HelloClient.war and in I2 is deployed HelloServer.war.

What is the configuration of the @EJB annotaion in the TestHelloService class, if i want the call HelloServiceImpl.sayHello() method in glassfish instance I2?

I tried something but nothing did work.