JBoss+Maven+Cargo开发EJB的Hello World!

Team要使用EJB了,不再使用以前比较山寨的CGI+Google Protocol; 同时构建工具也变成了Maven。这几天做了些实验,想写一个最简单的Hello World。有一个EJB的Service,再有一个Client去使用这个服务。

几天下来有点小崩溃,相对EJB 3的教程来说,配置实在太麻烦,有太多的属性、参数、版本要做了。好在最后取得了成功,记在这里做个小结。

1. 工具的安装

Maven 3

从Apache的网站上下载,然后把${MAVEN_HOME}/bin目录加到系统的PATH下。

JBoss AS

我这里下载的是JBoss AS 7.1.1.Final压缩包。这里的版本非常重要,它和之后开发的其他包有依赖关系。

假设JBoss被解压到${JBOSS_HOME}下。

NOTE: 解压之后一定在JBoss的bin下运行add-user.bat,安装一个管理用户。这个很重要。

2. 写一个EJB的服务

写一个简单EJB服务很简单,我们可以有Maven的archetype生成一个工程的框架。

一路回车之后,就得到了一个Server的工程文件夹结构。但删掉默认生成的App.java和AppTest.java.

然后在org.yli.learn.server中,加入两个类。一个是接口SayHello,一个是EJB Bean类SayHelloBean.

里面用到一些EJB 3的Annonation,大家自己查查书吧。

下一步就是修改pom.xml文件了,这里我们只要加入一些编译的依赖就行。

然后你可以编译安装了。

3. EJB Bean的部署

我选择了Cargo来部署Bean到JBoss里,好像有一个plugin叫jboss-as的,也可以做一样的事情。

我们只要在pom.xml加上:

然后就可以用mvn的goal来部署和运行JBoss了

  • 部署: mvn cargo:deployer-deploy
  • 运行: mvn cargo:run或cargo:start

好了,这样我们写好的EJB就部署到了JBoss的容器中。

4. EJB的Client

这部分的配置有点让我的崩溃,花的时间也最多。

基本步骤也是先用maven建立一个框架,比如我们的工程是org.yli.learn:client:jar:1.0, 包名是org.yli.learn.client.

我们在包里有一个Client,它会去向JBoss获取service并使用。

POM文件里有相关的依赖

然后你可以用mvn clean package来编译打包了。

很重要的一点,就是要添加一个properties文件。在src/main下面,建立一个resources的文件夹,然后在里面新建文件jboss-ejb-client.properties. 我这里使用的是一些默认的选项,具体文档在JBoss的Confluence里有介绍。

好了,可以用mvn exec:exec来运行了!

你可以顺利看到Hello, Jason!

真太不容易了!但现在的感觉很爽啊! 😀