刚从国外看了一篇文档,由于jboss7.1 final更新了很多内容,新手无法下手配置。在此给新手入门。
主要环境搭建 Eclipse3.7+Jboss7.1 final
1.官网下载jboss-as-7.1.1.Final,并解压文件。如下图
并运行\jboss-as-7.1.1.Final\bin\standalone.bat文件
2.打开Eclipse创建工程,工程名为JbossTest
3.Eclipse中加入jboss开发EJB必要的 JAR文件,目录地址为jboss-as-7.1.1.Final\bin\client\jboss-client.jar
4.创建一个远程接口HelloRemote,包名为com.ejb.impl,主要代码如下:
package com.ejb.impl;
import javax.ejb.Remote;
@Remote
public interface HelloRemote {
public String say(String name);
}
5.创建实现类Hello,包名为com.ejb.Util,主要代码如下
package com.ejb.Util;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import com.ejb.impl.HelloRemote;
@Stateless
@LocalBean
public class Hello implements HelloRemote{
public String say(String name){
return name+" 您好!";
}
}
6.项目工程打包,选择File 》Export》Java》JAR file进入以下界面,如下图:
将JAR文件打包到\jboss-as-7.1.1.Final\standalone\deployments目录下
7.ClassPath下创建jboss-ejb-client.properties文件,主要内容如下:
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=localhost
remote.connection.default.port = 4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
8.创建客户端测试类Test,包名为package com.ejb.test,代码如下:
package com.ejb.test;
import java.util.Hashtable;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.ejb.Util.Hello;
import com.ejb.impl.HelloRemote;
public class Test {
/**
* @param args
* @throws NamingException
*/
public static void main(String[] args) throws NamingException {
// TODO Auto-generated method stub
Hashtable
jndiProperties = new Hashtable();
jndiProperties.put(Context.URL_PKG_PREFIXES,
"org.jboss.ejb.client.naming");
try {
Context context = new InitialContext(jndiProperties);
final String appName = "";
// 部署的已经打包的jar文件的名字
final String moduleName = "HelloWorld";
final String distinctName = "";
// 实现类的类名
final String beanName = Hello.class.getSimpleName();
// 接口类的全名
final String viewClassName = HelloRemote.class.getName();
String lookupStr = "ejb:" + appName + "/" + moduleName + "/"
+ distinctName + "/" + beanName + "!" + viewClassName;
Object obj = context.lookup(lookupStr);
HelloRemote hwr = (HelloRemote) obj;
String say = hwr.say("王玮");
System.out.println(say);
} catch (NamingException e) {
e.printStackTrace();
}
}
}
8.编译运行,如下图: