EJB学习应用
来源:互联网 发布:网络词污是什么意思 编辑:程序博客网 时间:2024/05/17 23:33
测试EJB例子:D:/Test_Project/ejbtest中
个人理解EJB主要用于远程访问功能,在YcsbTool中的应用是进行发送短消息
在META-INF文件夹下配置ejb-jar.xml;ejb-modeler-layout.xml;weblogic-ejb-jar.xml;
在这个例子中需要写两个接口和一个类
一、程序部分,Eclipse平台
接口为Demo.java继承extends EJBObject(javax.ejb.EJBObject)这里写的业务的方法;EJBObject是远程接口。
这是demo的代码,其中exec方法是用户的自定义的业务实现。
DemoHome.java继承了EJBHome是本地接口
实现类DemoBean implements SessionBean(javax.ejb.SessionBean)会自动生成四个方法ejbActivate();ejbPassivate();ejbRemove();setSessionContext();但还需要手动敲入方法ejbCreate();还有接口Demo.java中的方法体
(源代码地址D:/Test_Project/ejbtest/test)
配置文件应该注意的在这里部署Demo.java;DemoHome.java;DemoBean.java;
要部署一个 bean 时,必须将它的远程、本地和 bean 类文件以及 XML 部署描述信息封装到 jar 文件中。部署描述信息在 jar 中必须以特定名称 META-INF/ejb-jar.xml 存储。
以下配置文件建在META-INF文件夹下的ejb-jar.xml
配置文件META-INF/ejb-modeler-layout.xml这个文件
还有这个文件META-INF/weblogic-ejb-jar.xml
二、导入架包weblogic.jar
需要注意的是应该配置EJB的时候要把weblogic.jar配置上,
1. 需要在环境变量里面配置,
2. 有时候配置了环境变量后不一定好用
可以在Eclipse中已导入包的形式导入进来
选择项目右键选择属性
进入后选择Java Build Path如图
选择按钮“Add Library”如图
选择next按钮进入后选择User Libraries后如图
选择new,给库起名
因为已经导入过了weblogic架包了,我这里就命名个test架包吧,命名成功后会显示出来
然后选择Add JARS按钮
选择weblogic.jar架包所在路径即可
添加成功
按OK就可以了
下面我们可以将我们写的EJB形成一个jar架包或者war架包了
看看怎么实现的吧:
选择咱们的工程后右键选择Export
进入后的界面是
选择Java文件夹下的JAR file然后选择next按钮
这里需要指定,你所形成的JAR file的路径,点击Browse按钮你可以指定路径,并命名,这个jar文件名要和你所指的EJB的名字相同,也就是以后要用到的EJB的jndi name了
然后点击Finish按钮就可以 了
就在指定目录下根据上述程序代码形成了这么个架包
三、在weblogic中部署
这还没完呢,还要把这个EJB部署到weblogic中呢
一定要新建个服务啊,然后需要注意的EJB的端口号最好不要和weblogic的应用程序的端口冲突,也就是说EJB需要一个服务,而weblogic的应用程序也需要一个服务,要两个服务一起跑,这样才可以的,我试过了,如果犯懒只用了一个服务的话后台会报错的,具体为什么我也不知道!
在weblogic中部署前期我就不说了直接说进入控制台吧
选择EJB Modules
进入后选择Deploy a new EJB Module…
选择刚才的Demo.jar所在路径下
前面的单选按钮选中后选择Target Module按钮后进入这个页面
选择Deploy按钮
成功了!选择Testing选项卡后
可以看到了
那么如何测试呢?!
四、测试
我领导写了个测试文件
带有main函数的java文件
import java.util.ArrayList;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import aaa.Demo;
import aaa.DemoHome;
public class myEjb {
public String aaa(){
return "Hello word";
}
public static void main(String[] args) {
// TODO Auto-generated method stub
InitialContext ctx=null;
DemoHome home =null;
Demo send=null;
ArrayList rtn = null;
String phoneNO=""; //手机号
try{
ctx=getInitialContext();
Object obj=ctx.lookup("Demo"); //这里就是我们配置的EJB文件的架包名
home=(DemoHome)PortableRemoteObject.narrow(obj,DemoHome.class);
send=home.create();
String fkmsg=send.exec();
System.out.println(fkmsg);
}catch(Exception e){
e.printStackTrace();
System.out.println("Exception.....");
}
}
private static InitialContext getInitialContext() throws Exception {
//EJB容器的地址
Properties pro = new Properties();
Properties properties;
String url = "";
String user = "";
String password = "";
String jndiName="";
url ="T3://localhost:7001";
/*这里需要注意的是T3协议啊,
原来我就给弄错了弄成了http协议所以开始没跑通*/
user = ""; //用户名一般都为空
password = ""; //密码一般也为空
jndiName = "Demo"; //还有这里配置的是jndi name啊
properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, url);
if (user != null) {
properties.put(Context.SECURITY_PRINCIPAL, user);
properties.put(Context.SECURITY_CREDENTIALS,
password == null ? "" : password);
}
return new javax.naming.InitialContext(properties);
}
}
- EJB学习应用
- EJB学习笔记-4-web应用访问EJB(remote)
- ejb应用
- 学习ejb
- EJB 学习
- EJB学习
- EJB学习
- ejb 学习
- ejb 学习
- ejb 学习
- ejb 学习
- EJB学习
- 【EJB学习笔记】——建立一个简单的EJB应用
- EJB核心技术及其应用
- EJB核心技术及其应用
- EJB核心技术及其应用
- EJB核心技术及其应用
- EJB核心技术及其应用
- DHC log 2009-1-13
- Don't overskill
- ansi,dbcs,mbcs,unicode各是甚麽意思
- flex分析zip文件
- Linux Signal (2): signal函数(转)
- EJB学习应用
- session你应该知道的
- Linux Signal (3): kill和raise (转)
- 我的同事们(四): Sang Shin
- 在我的路上,有你
- Oracle 表空间
- 学习C++和编程的50个观点
- ★ 使用索引的误区之五:空值的妙用
- 序列化和反序列化的工具类