I tested this EJB3.0 application in JBoss and it is working so it may help you.
sample interface Calculator.java
/**
*
*/
package com.hcl.ejb.iface;
/**
* @author Administrator
*
*/
public interface Calculator {
public int add(int a,int b);
public float mul(float a,float b);
}
Local Interface CalculatorLocal.java
package com.hcl.ejb.sessionface;
import com.hcl.ejb.iface.*;
import javax.ejb.Local;
@Local
public interface CalculatorLocal extends Calculator{
}
Remote Interface CalculatorRemote.java
package com.hcl.ejb.sessionface;
import com.hcl.ejb.iface.*;
import javax.ejb.Remote;
@Remote
public interface CalculatorRemote extends Calculator{
}
Stateless session bean CalculatorBean.java
package com.hcl.ejb.session.bean;
import com.hcl.ejb.sessionface.CalculatorLocal;
import com.hcl.ejb.sessionface.CalculatorRemote;
import javax.ejb.Stateless;
public @Stateless class CalculatorBean implements CalculatorLocal, CalculatorRemote{
public int add(int a,int b){
return a+b;
}
public float mul(float a,float b){
return a+b;
}
}
Client class CalculatorClient.java
/**
*
*/
package com.hcl.ejb.client;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.hcl.ejb.iface.*;
import com.hcl.ejb.sessionface.*;
import com.hcl.ejb.session.bean.*;
/**
* @author Administrator
*
*/
public class CalculatorClient {
/**
*
*/
public CalculatorClient() {
// TODO Auto-generated constructor stub
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
Properties prop=new Properties();
prop.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
prop.setProperty("java.naming.provider.url","jnp://localhost:1099");
prop.setProperty("java.naming.factory.url.pkgs","org.jboss.naming
rg.jnp.interfaces");
InitialContext ctx=new InitialContext(prop);
System.out.println("111");
Calculator cal=(Calculator)ctx.lookup("CalculatorBean/remote");
System.out.println("222");
System.out.println("add: = "+cal.add(10,20));
System.out.println("mul: = "+cal.mul(10.5f,20.5f));
}catch(NamingException ne){
ne.printStackTrace();
}
}
}
make the respective package no need to make it jaar start the server and run the client as right click on the CalculatorClient.java run as
java application it will work for you.