File: jndi.properties
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost:1099
File: Main.java
import javax.naming.InitialContext;
import bean.CountRemote;
public class Main {
public static void main(String[] a) throws Exception {
String name = "java2s";
CountRemote service = null;
// Context compEnv = (Context) new InitialContext().lookup("java:comp/env");
// service = (HelloService)new
// InitialContext().lookup("java:comp/env/ejb/HelloService");
service = (CountRemote) new InitialContext().lookup("CountBean/remote");
int countVal = 9;
service.set(countVal);
countVal = service.count();
System.out.println(countVal);
System.out.println("Calling count() on beans...");
countVal = service.count();
System.out.println(countVal);
service.remove();
}
}
File: CountBean.java
package bean;
import javax.ejb.Remote;
import javax.ejb.Remove;
import javax.ejb.Stateless;
import javax.jws.WebService;
@Stateless
@Remote(CountRemote.class)
@WebService(serviceName="Counter", portName="CounterPort")
public class CountBean implements CountLocal, CountRemote {
private int val;
public int count() {
System.out.println("count()");
return ++val;
}
public void set(int val) {
this.val = val;
System.out.println("set()");
}
@Remove
public void remove() {
System.out.println("remove()");
}
}
File: CountLocal.java
package bean;
import javax.ejb.Local;
@Local
public interface CountLocal {
/**
* Increments the counter by 1
*/
public int count();
/**
* Sets the counter to val
* @param val
*/
public void set(int val);
/**
* removes the counter
*/
public void remove();
}
File: CountRemote.java
package bean;
import javax.ejb.Remote;
@Remote
public interface CountRemote{
/**
* Increments the counter by 1
*/
public int count();
/**
* Sets the counter to val
* @param val
*/
public void set(int val);
/**
* removes the counter
*/
public void remove();
}
|