Ejb3.0--1

Ejb3.0--1
今天学习了一下午的ejb3.0遇见了一些麻烦,拿出来和大家分享一下。以免大家以后遇到同样的问题 :P
A)首先,我下载了jboss服务器,这个是ejb的运行环境,必不可少。
B)我将他解压到/usr/jboos下,然后修改用户的profile文件vi /home/xiaocong/.bash_profile ;在里面添加
export JBOSS_HOME=/usr/jboss;
export PATH= $PATH:$JBOSS_HOME/bin;
(注)我已经安装了jdk1.5,并且已经设置好环境变量了,还要注意jboss文件夹的所有者啊!必要的时候使用root用户,chown一下。
C)ok,现在可以运行一下jboss了。
D)打开我的IDE,新建一个ejb工程HelloWorld。
E)创建个自己的包com.chenzhq.ejb.
F)创建一个无状态的会话bean(stateless session bean)的远程接口HelloWorldRemote.
package com.chenzhq.ejb;

import javax.ejb.Remote;

@Remote ({HelloWorldRemote.class})
public interface HelloWorldRemote {

public String say(String name);
}


G)创建Remote接口的实现。
package com.chenzhq.ejb;

import javax.ejb.Local;
import javax.ejb.Remote;
import javax.ejb.Stateless;

@Stateless//注意这里啊
@Remote ({HelloWorldRemote.class})//注意这里啊

public class HelloWorld implements HelloWorldRemote {

public String say(String name){
System.out.println(HelloWorld.class.getCanonicalName());
return name;
}
}

H)ok,写个ant脚本
<?xml version="1.0" encoding="UTF-8"?>
<project name="ejb" default="jar">

<target name="jar">
<jar destfile="D:\work\lib\helloworld.jar">
<fileset dir="./classes">
<include name="**/*.class"/>
<include name="**/*.xml"/>
</fileset>
</jar>

</target>

</project>

I)将helloworld.jar复制到/usr/jboss/server/all/deploy下。看看控制台是否有输出
15:40:51,714 INFO [JmxKernelAbstraction] installing MBean: jboss.j2ee:jar=helloworld.jar,name=HelloWorld,service=EJB3 with dependencies:
15:40:51,757 INFO [EJBContainer] STARTED EJB: com.chenzhq.ejb.HelloWorld ejbName: HelloWorld
15:40:51,781 INFO [EJB3Deployer] Deployed: file:/usr/jboss/server/default/deploy/helloworld.jar
如果有上面的输出,说明是成功部署了。
在ie里输入http://ip:port访问jboss的jmx-console点击service=jndiView,然后是点击Output JNDI info as text下的invoke,查找HelloWorld。
J)在client端调用ejb的代码。
package com.chenzhq;

import java.util.Properties;

import javax.naming.InitialContext;
import javax.naming.NamingException;

import com.chenzhq.ejb.HelloWorldRemote;

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url", "jnp://192.168.0.2:1099");//这里是我部署ejb的主机地址。
props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");

try {
InitialContext ic = new InitialContext(props);
HelloWorldRemote hwr = ((HelloWorldRemote)ic.lookup("HelloWorld/remote"));
System.out.println(hwr.say("chenzhq"));

} catch (NamingException e) {
// TODO Auto-generated catch block
System.out.print(e);
e.printStackTrace();
}

//

}

}

Ok了,待续。。。。。。。。。。。。 :D :D :D :D :D
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值