package local;
import javax.ejb.Local;
@Local
public interface Service {
public String hello(String name);
}
package stateless;
import javax.ejb.Stateless;
import local.Service;
@Stateless(name="xy")
public class ServiceBean implements Service {
@Override
public String hello(String name) {
return name + ",你好,现在的时间是:" + new java.util.Date();
}
}
package remote;
import javax.ejb.Remote;
@Remote
public interface CallService {
String callHell(String name);
}
package stateless;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import local.Service;
import remote.CallService;
@Stateless(mappedName="a")
public class CallServiceBean implements CallService{
@EJB(beanName="xy")
private Service service;
@Override
public String callHell(String name) {
final String prefix = "调用service ejb 成功,返回值:";
String result = service.hello(name);
System.out.println(prefix + result);
return prefix + result;
}
}
package ejb.client.test;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import remote.CallService;
public class InjectTest {
<span style="white-space:pre"> </span>public static void main(String[] args) {
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>try{
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>Properties props = new Properties();
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>props.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>InitialContext ctx = new InitialContext(props);
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>CallService service = (CallService)ctx.lookup("ejb:/inject/CallServiceBean!remote.CallService");
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>service.callHell("AAAAAAAAAAA");
<span style="white-space:pre"> </span>service.callHell("BBBBBBBBBBB");
<span style="white-space:pre"> </span>service.callHell("CCCCCCCCCCC");
<span style="white-space:pre"> </span>service.callHell("DDDDDDDDDDD");
<span style="white-space:pre"> </span>service.callHell("FFFFFFFFFFF");
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>ctx.close();
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>}<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>catch(Exception e){
<span style="white-space:pre"> </span>e.printStackTrace();
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>
}