JBoss EJB3(HelloWorld)备忘记
JBoss EJB3(HelloWorld)备忘记
EJB (Enterprise JavaBeans) 是 J2EE 的核心组件,
主要目的是提供开发员一个企业基建架构, 使其更容易开发实用的应用程式.
由于这个目的在 EJB2 时彻底失败. 更加重开发员的工作.
故 EJB3 的主要目标是修正及改良 EJB2 的问题. 期望能够真正简化开发员的工作.
这里并不打算介绍 EJB2 的不足及 EJB3 增强的特性. 亦不打算对 EJB 作简介.
因为这些在网路上很容易找到相关的教学. 亦不是这编文章的目的.
这编备忘记主要是实作 Stateless Session Beans HelloWorld.
JBoss 是一个开源的 J2EE 服务器, JBoss 4 版本之后支持 EJB3 ,
当其他 J2EE 应用系统需要重启动才能检测发布时, JBoss 2.0 版本后便提供自动发布检测,
这是第一个 J2EE 应用系统提供自动发布及重发布检测. JBoss 3.0 后更增强此功能,
加入自动追踪与发布相依的服务. 这特性尤其适合要求高的电信系统.
只要简单设定 JBoss URL, 就能够从任何的远端网络启动服务,
这可使得单独的服务器更容易集中管理分布式的 JBoss 系统.
JBoss 提供以下远端呼叫协定:
Fast Socket
Fast Socket over HTTP (HTTP tunneling)
IIOP
JMS
SOAP
备忘记开始:
[1] 安装 jdk 5
[2] 安装 JBoss EJB3
[3] 第一次启动 JBoss
[4] 安装 Eclipse WTP
[5] 安装 JBoss IDE
[6] 使用 Eclipse 建立第一个 EJB3 Project [ 即 HelloWorld ]
[7] 建立 HelloWorld Stateless Session Bean 及 Local, Remote interfaces
[8] 建立客户端测试程式
[9] 使用 ANT 建立 EJB-JAR 并执行 Client 程式
这..这.. 简称它为 JBoss EJB3 HelloWorld 9 步曲.
[1] 安装 jdk 5:
下载 jdk-1_5_0_07-nb-5_0-win-ml.exe
http://java.sun.com/j2se/1.5.0/download-netbeans.html
安装至 D:/jdk1.5.0_07
新增环境变数 JAVA_HOME=D:/jdk1.5.0_07
D:/jdk1.5.0_07/bin 加入至 PATH 中
D:/jdk1.5.0_07/lib/dt.jar 及 D:/jdk1.5.0_07/lib/tools.jar 加入至 CLASSPATH 中
执行 D:/>java -version
输出 java version "1.5.0_07" 表示安装成功.
[2] 安装 JBoss EJB3:
这里为了简化备忘过程, 故使用网上直接执行安装,
[ 亦可选择下载 JBoss AS 包 及 EJB3 包安装 ]
http://jboss.sourceforge.net/jnlp/jboss-4.0.4.GA-installer.jnlp
http://labs.jboss.com/portal/jbossas/download
安装至 D:/jboss
安装时选择 ejb3-clustered [ 方便日后使用 cluster ], 如下图所示
安装完后, 新增环境变数 JBOSS_HOME=D:/jboss
D:/jboss/bin 加入至 PATH 中
JBOSS 目录结构如下所示:
D:/jboss
|-- bin
|-- client
'-- docs
+|-- dtd
|-- lib
`-- server
+|-- all
+|-- mininal
`-- default
+|-- conf
+|-- data
+|-- deploy
|-- lib
|-- log
+|-- tmp
+|-- work
bin : JBoss 开关 Scripts.
client : 与JBoss通讯使用的客户端 libraries ( JARs )
docs : 设定文档样本. ( 如资讯库设定文档样本等 )
docs/dtd : JBoss 不同XML 的 Document Type Definitions (DTDs) 档.
lib : JBoss 启动时, 会读取放在这里被不同配置共享的 libraries.
server : 存放 JBoss 不同配置档案.
server/default : JBoss 预设的配置档案.
server/default/conf : JBoss 配置档案.
server/default/data : JBoss 资料库档案.
server/default/deploy : JBoss 自动发布检测目录. ( EBJ-JARs, WARs 及 EARs 放下去, JBoss 会自动检测 )
server/default/lib : JBoss 启动此配置目录时, 会读取这里的 libraries.
server/default/log : 存放 JBoss 记录(日志)档案.
server/default/tmp : 存放 JBoss 暂存档案.
server/default/work : 存放 JBoss 编译后的java byte code.
[3] 第一次启动 JBoss:
run.bat -c config-name
[ 这里使用 ejb3-clustered 安装, 只能选其中一种, 预设是 default ]
[ config-name 为 mininal , 启动最小配置模式 ]
[ config-name 为 default , 启动预设配置模式, 不加任何参数亦是此预设模式 ]
[ config-name 为 all , 启动全部配置模式 ]
使用预设配置模式, 执行
D:/jboss/bin>run.bat
网页输入 http://localhost:8080/ ,出现如下画面即安装成功:
如果分开安装 JBoss AS 及 EJB3 就可以打开下面连结. 网上安装则没有此功能.
点击上图的 JBoss Web Console 进入JBoss Web控制介面. 如下图所示:
[4] 安装 Eclipse WTP:
下载 wtp-all-in-one-sdk-R-1.5.0-200606281455-win32.zip
http://www.eclipse.org/webtools/
http://www.eclipse.org/downloads/download.php?file=/webtools/downloads/drops/R-1.5.0-200606281455/wtp-all-in-one-sdk-R-1.5.0-200606281455-win32.zip
解压至 D:/eclipse_wtp
[5] 安装 JBoss IDE:
Eclipse:Help -> Software Updates -> Find and Install -> Search for new features to install
按 New Remote Site
Name: JBOSS IDE
URL: http://download.jboss.org/jbosside/updates/stable
选择最新的版本然后安装.
[6] 使用 Eclipse 建立第一个 EJB3 Project [ 即 HelloWorld ]:
Eclipse: File -> New -> Other -> EJB 3.0 -> EJB 3.0 Project
Project Name: HelloWorldEJB3 -> Next
选择 Create a JBoss configuration
打开后右键点选 JBoss 4.0.x -> new
Name : jboss_configuration
JBoss 4.0.x Home Directory : D:/jboss
Server Configuration:default
这里 JDK 面版里的 Runtime JRE 要设定 jdk 5 的.
然后按 Apply 及 Close, [ 这里如果按 Debug 就会在 Eclipse 里启动 JBoss ]
设定如下图所示:
然后按 Finish. HelloWorldEJB3 project 就会成功建立.
[7] 建立 HelloWorld Stateless Session Bean 及 Local, Remote interfaces:
/*----------------------- HelloWorld.java ---------------------*/
package ejb3.joeyta.sessions;
public interface HelloWorld {
public String echo(String msg);
}
/*----------------------- HelloWorld.java ---------------------*/
/*----------------------- HelloWorldLocal.java ----------------*/
package ejb3.joeyta.sessions;
import javax.ejb.Local;
@Local
public interface HelloWorldLocal extends HelloWorld {
}
/*----------------------- HelloWorldLocal.java ----------------*/
/*----------------------- HelloWorldRemote.java ---------------*/
package ejb3.joeyta.sessions;
import javax.ejb.Remote;
@Remote
public interface HelloWorldRemote extends HelloWorld {
}
/*----------------------- HelloWorldRemote.java ---------------*/
/*----------------------- HelloWorldBean.java -----------------*/
package ejb3.joeyta.sessions;
import javax.ejb.Stateless;
@Stateless
public class HelloWorldBean implements HelloWorldRemote, HelloWorldLocal {
public String echo(String msg) {
System.out.println("Joeyta try Hello World.");
return msg;
}
}
/*----------------------- HelloWorldBean.java -----------------*/
[8] 建立客户端测试程式:
/*----------------------- HelloWorldClient.java ---------------*/
package ejb3.joeyta.clients;
import javax.naming.InitialContext;
import ejb3.joeyta.sessions.HelloWorld;
public class HelloWorldClient
{
public static void main(String[] args) throws Exception
{
InitialContext ctx = new InitialContext();
HelloWorld helloWorld = (HelloWorld) ctx.lookup("HelloWorldBean/remote");
System.out.println(helloWorld.echo("Hello World, Joeyta"));
}
}
/*----------------------- HelloWorldClient.java ---------------*/
项目结构如下所示:
[9] 使用 ANT 建立 EJB-JAR 并执行 Client 程式:
在 HelloWorldEJB3 project 下建立 build.xml [ ANT build File ]
内容如下:
<!------------------------- build.xml ------------------------------->
<?xml version="1.0"?>
<project name="JBoss" default="run.HelloWorldClient" basedir=".">
<property environment="env" />
<property name="jboss.home" value="${env.JBOSS_HOME}" />
<property name="classes.dir" value="bin" />
<path id="classpath">
<fileset dir="${jboss.home}/client">
<include name="**/*.jar" />
</fileset>
<pathelement location="${classes.dir}" />
</path>
<target name="clean">
<delete file="${basedir}/HelloWorld.jar" />
<delete file="${jboss.home}/server/default/deploy/HelloWorld.jar" />
</target>
<target name="ejbjar" depends="clean">
<jar jarfile="HelloWorld.jar">
<fileset dir="${classes.dir}">
<include name="ejb3/joeyta/sessions/*.class" />
</fileset>
</jar>
<copy file="HelloWorld.jar " todir="${jboss.home}/server/default/deploy" />
</target>
<target name="run.HelloWorldClient" depends="ejbjar">
<java classname="ejb3.joeyta.clients.HelloWorldClient" fork="yes" dir=".">
<classpath refid="classpath" />
</java>
</target>
</project>
<!------------------------- build.xml ------------------------------->
点选 build -> Run As -> 2. Ant Build
Eclipse Console 输出为
Hello World, Joeyta
如下图所示:
JBoss Console 输出为
Joeyta try Hello World.
如下图所示:
EJB (Enterprise JavaBeans) 是 J2EE 的核心组件,
主要目的是提供开发员一个企业基建架构, 使其更容易开发实用的应用程式.
由于这个目的在 EJB2 时彻底失败. 更加重开发员的工作.
故 EJB3 的主要目标是修正及改良 EJB2 的问题. 期望能够真正简化开发员的工作.
这里并不打算介绍 EJB2 的不足及 EJB3 增强的特性. 亦不打算对 EJB 作简介.
因为这些在网路上很容易找到相关的教学. 亦不是这编文章的目的.
这编备忘记主要是实作 Stateless Session Beans HelloWorld.
JBoss 是一个开源的 J2EE 服务器, JBoss 4 版本之后支持 EJB3 ,
当其他 J2EE 应用系统需要重启动才能检测发布时, JBoss 2.0 版本后便提供自动发布检测,
这是第一个 J2EE 应用系统提供自动发布及重发布检测. JBoss 3.0 后更增强此功能,
加入自动追踪与发布相依的服务. 这特性尤其适合要求高的电信系统.
只要简单设定 JBoss URL, 就能够从任何的远端网络启动服务,
这可使得单独的服务器更容易集中管理分布式的 JBoss 系统.
JBoss 提供以下远端呼叫协定:
Fast Socket
Fast Socket over HTTP (HTTP tunneling)
IIOP
JMS
SOAP
备忘记开始:
[1] 安装 jdk 5
[2] 安装 JBoss EJB3
[3] 第一次启动 JBoss
[4] 安装 Eclipse WTP
[5] 安装 JBoss IDE
[6] 使用 Eclipse 建立第一个 EJB3 Project [ 即 HelloWorld ]
[7] 建立 HelloWorld Stateless Session Bean 及 Local, Remote interfaces
[8] 建立客户端测试程式
[9] 使用 ANT 建立 EJB-JAR 并执行 Client 程式
这..这.. 简称它为 JBoss EJB3 HelloWorld 9 步曲.
[1] 安装 jdk 5:
下载 jdk-1_5_0_07-nb-5_0-win-ml.exe
http://java.sun.com/j2se/1.5.0/download-netbeans.html
安装至 D:/jdk1.5.0_07
新增环境变数 JAVA_HOME=D:/jdk1.5.0_07
D:/jdk1.5.0_07/bin 加入至 PATH 中
D:/jdk1.5.0_07/lib/dt.jar 及 D:/jdk1.5.0_07/lib/tools.jar 加入至 CLASSPATH 中
执行 D:/>java -version
输出 java version "1.5.0_07" 表示安装成功.
[2] 安装 JBoss EJB3:
这里为了简化备忘过程, 故使用网上直接执行安装,
[ 亦可选择下载 JBoss AS 包 及 EJB3 包安装 ]
http://jboss.sourceforge.net/jnlp/jboss-4.0.4.GA-installer.jnlp
http://labs.jboss.com/portal/jbossas/download
安装至 D:/jboss
安装时选择 ejb3-clustered [ 方便日后使用 cluster ], 如下图所示
安装完后, 新增环境变数 JBOSS_HOME=D:/jboss
D:/jboss/bin 加入至 PATH 中
JBOSS 目录结构如下所示:
D:/jboss
|-- bin
|-- client
'-- docs
+|-- dtd
|-- lib
`-- server
+|-- all
+|-- mininal
`-- default
+|-- conf
+|-- data
+|-- deploy
|-- lib
|-- log
+|-- tmp
+|-- work
bin : JBoss 开关 Scripts.
client : 与JBoss通讯使用的客户端 libraries ( JARs )
docs : 设定文档样本. ( 如资讯库设定文档样本等 )
docs/dtd : JBoss 不同XML 的 Document Type Definitions (DTDs) 档.
lib : JBoss 启动时, 会读取放在这里被不同配置共享的 libraries.
server : 存放 JBoss 不同配置档案.
server/default : JBoss 预设的配置档案.
server/default/conf : JBoss 配置档案.
server/default/data : JBoss 资料库档案.
server/default/deploy : JBoss 自动发布检测目录. ( EBJ-JARs, WARs 及 EARs 放下去, JBoss 会自动检测 )
server/default/lib : JBoss 启动此配置目录时, 会读取这里的 libraries.
server/default/log : 存放 JBoss 记录(日志)档案.
server/default/tmp : 存放 JBoss 暂存档案.
server/default/work : 存放 JBoss 编译后的java byte code.
[3] 第一次启动 JBoss:
run.bat -c config-name
[ 这里使用 ejb3-clustered 安装, 只能选其中一种, 预设是 default ]
[ config-name 为 mininal , 启动最小配置模式 ]
[ config-name 为 default , 启动预设配置模式, 不加任何参数亦是此预设模式 ]
[ config-name 为 all , 启动全部配置模式 ]
使用预设配置模式, 执行
D:/jboss/bin>run.bat
网页输入 http://localhost:8080/ ,出现如下画面即安装成功:
如果分开安装 JBoss AS 及 EJB3 就可以打开下面连结. 网上安装则没有此功能.
点击上图的 JBoss Web Console 进入JBoss Web控制介面. 如下图所示:
[4] 安装 Eclipse WTP:
下载 wtp-all-in-one-sdk-R-1.5.0-200606281455-win32.zip
http://www.eclipse.org/webtools/
http://www.eclipse.org/downloads/download.php?file=/webtools/downloads/drops/R-1.5.0-200606281455/wtp-all-in-one-sdk-R-1.5.0-200606281455-win32.zip
解压至 D:/eclipse_wtp
[5] 安装 JBoss IDE:
Eclipse:Help -> Software Updates -> Find and Install -> Search for new features to install
按 New Remote Site
Name: JBOSS IDE
URL: http://download.jboss.org/jbosside/updates/stable
选择最新的版本然后安装.
[6] 使用 Eclipse 建立第一个 EJB3 Project [ 即 HelloWorld ]:
Eclipse: File -> New -> Other -> EJB 3.0 -> EJB 3.0 Project
Project Name: HelloWorldEJB3 -> Next
选择 Create a JBoss configuration
打开后右键点选 JBoss 4.0.x -> new
Name : jboss_configuration
JBoss 4.0.x Home Directory : D:/jboss
Server Configuration:default
这里 JDK 面版里的 Runtime JRE 要设定 jdk 5 的.
然后按 Apply 及 Close, [ 这里如果按 Debug 就会在 Eclipse 里启动 JBoss ]
设定如下图所示:
然后按 Finish. HelloWorldEJB3 project 就会成功建立.
[7] 建立 HelloWorld Stateless Session Bean 及 Local, Remote interfaces:
/*----------------------- HelloWorld.java ---------------------*/
package ejb3.joeyta.sessions;
public interface HelloWorld {
public String echo(String msg);
}
/*----------------------- HelloWorld.java ---------------------*/
/*----------------------- HelloWorldLocal.java ----------------*/
package ejb3.joeyta.sessions;
import javax.ejb.Local;
@Local
public interface HelloWorldLocal extends HelloWorld {
}
/*----------------------- HelloWorldLocal.java ----------------*/
/*----------------------- HelloWorldRemote.java ---------------*/
package ejb3.joeyta.sessions;
import javax.ejb.Remote;
@Remote
public interface HelloWorldRemote extends HelloWorld {
}
/*----------------------- HelloWorldRemote.java ---------------*/
/*----------------------- HelloWorldBean.java -----------------*/
package ejb3.joeyta.sessions;
import javax.ejb.Stateless;
@Stateless
public class HelloWorldBean implements HelloWorldRemote, HelloWorldLocal {
public String echo(String msg) {
System.out.println("Joeyta try Hello World.");
return msg;
}
}
/*----------------------- HelloWorldBean.java -----------------*/
[8] 建立客户端测试程式:
/*----------------------- HelloWorldClient.java ---------------*/
package ejb3.joeyta.clients;
import javax.naming.InitialContext;
import ejb3.joeyta.sessions.HelloWorld;
public class HelloWorldClient
{
public static void main(String[] args) throws Exception
{
InitialContext ctx = new InitialContext();
HelloWorld helloWorld = (HelloWorld) ctx.lookup("HelloWorldBean/remote");
System.out.println(helloWorld.echo("Hello World, Joeyta"));
}
}
/*----------------------- HelloWorldClient.java ---------------*/
项目结构如下所示:
[9] 使用 ANT 建立 EJB-JAR 并执行 Client 程式:
在 HelloWorldEJB3 project 下建立 build.xml [ ANT build File ]
内容如下:
<!------------------------- build.xml ------------------------------->
<?xml version="1.0"?>
<project name="JBoss" default="run.HelloWorldClient" basedir=".">
<property environment="env" />
<property name="jboss.home" value="${env.JBOSS_HOME}" />
<property name="classes.dir" value="bin" />
<path id="classpath">
<fileset dir="${jboss.home}/client">
<include name="**/*.jar" />
</fileset>
<pathelement location="${classes.dir}" />
</path>
<target name="clean">
<delete file="${basedir}/HelloWorld.jar" />
<delete file="${jboss.home}/server/default/deploy/HelloWorld.jar" />
</target>
<target name="ejbjar" depends="clean">
<jar jarfile="HelloWorld.jar">
<fileset dir="${classes.dir}">
<include name="ejb3/joeyta/sessions/*.class" />
</fileset>
</jar>
<copy file="HelloWorld.jar " todir="${jboss.home}/server/default/deploy" />
</target>
<target name="run.HelloWorldClient" depends="ejbjar">
<java classname="ejb3.joeyta.clients.HelloWorldClient" fork="yes" dir=".">
<classpath refid="classpath" />
</java>
</target>
</project>
<!------------------------- build.xml ------------------------------->
点选 build -> Run As -> 2. Ant Build
Eclipse Console 输出为
Hello World, Joeyta
如下图所示:
JBoss Console 输出为
Joeyta try Hello World.
如下图所示:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.