Ejb3.0+jboss 8 创建EJB demo

工具:Eclipse , wildfly 8.x

1、服务端:
1)创建接口
package com.welv.ejb;

  public interface FirstEjb {

public String saySomething(String name);

  }
2)实现
 package com.welv.ejb.impl;
 import javax.ejb.Remote;
 import javax.ejb.Stateless;
 import com.welv.ejb.FristEjb;

 @Stateless
 @Remote(FirstEjb.class)
 public class FirstEjbBean implements FirstEjb{
@Override
public String saySomething(String name) {
	// TODO Auto-generated method stub
	return "nihaoaaaaaaa";
}
 }

2、抽取接口,将接口export成jar包

3、创建client:
1)导入2创建的jar包

 2)创建properties文件:jboss-ejb-client.properties
    endpoint.name=client-endpoint
    remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
    remote.connections=default
    remote.connection.default.host=localhost
    remote.connection.default.port=8080
    remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
    remote.connection.default.username=admin
    remote.connection.default.password=adminadmin  
 **用户名密码可以通过jboss下bin文件夹中的add-user.bat进行设置
 **jboss7的port为4447,jboss6为1099且jboss6的配置文件不同

 2)客户端代码:
    package com.welv.ejbclient;
    import java.util.Properties;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import com.welv.ejb.FirstEjb;

    public class FirstEjbClient {

public static void main(String[] arg){

	try{
	final Properties jndiProperties = new Properties();
	jndiProperties.put(Context.URL_PKG_PREFIXES,
			"org.jboss.ejb.client.naming");
	final Context context = new InitialContext(jndiProperties);
	final String appName = "";
	// 部署的jar文件的名字
	final String moduleName = "EJB_01";
	final String distinctName = "";
	// 实现类的类名
	final String beanName = "FirstEjbBean";
	// 接口类的全名
	final String viewClassName = FirstEjb.class.getName();

	String lookupStr = "ejb:" + appName + "/" + moduleName + "/"
			+ distinctName + "/" + beanName + "!" + viewClassName;

	System.out.println(lookupStr);

	FirstEjb firstejb = (FirstEjb) context.lookup(lookupStr);
	String s = firstejb.saySomething("ss");
	System.out.println(s);
	}catch(Exception e){
		System.out.println("请检查调用方法是否为远程");
	}
  }

    }

经过试验,可行

原文地址:https://www.cnblogs.com/welv/p/4951666.html