weblogic+myeclipse开发stateless session bean

 

1.新建EJB Project  HelloWorldEJB

网上都说如果使用XDoclet,要选J2EE 1.3,选J2EE 1.4可能产生不可靠的XDoclet 结果

2.新建SESSION BEAN

包名必须要以ejb结尾。这里叫com.ejb

类名为 HelloEJB

我习惯于创建ejbCreate()方法,无状态的SESSION BEAN ejbCreate()方法不能有参数

创建完成后会有些警告,按照提示修改就可以了,主要改动为

1.增加默认的UID    private static final long serialVersionUID = 1L ;L表示是一个long型)

2.把私有成员变量移除

public void setSessionContext(SessionContext newContext)

       throws EJBException {}

3.修改注释信息

注释信息如下

* @ejb.bean name="Hello"             //bean

 *           display-name="Name for Hello"

 *           description="Description for Hello"

 *           jndi-name="ejb/Hello"   //远程HOME接口

 *           type="Stateless"       

 *           view-type="remote"

可以修改注释信息,来满足自己的需要

* @ejb.bean name="Hello"

 *           display-name="Hello"

 *           description="HelloEJB"

 *           jndi-name="ejb/HelloHome"

 *           type="Stateless"

 *           view-type="remote"

如果需要本地HOME接口,可以添加

*           local-jndi-name=”ejb/HelloLocalHome”

4.添加业务逻辑

此处添加(注释不能去掉)

修改为

Public String sayhello() throws EJBException{

      Return new String(“Hello,EJB”);

}

5.配置XDoclet

选择Project->Properties

选择Add Standard

选择Standard EJB

选中ejbdoclet,单击右键,选择Add

选择weblogic(倒数第三个) 然后OK

就会多了个weblogic

修改右边Property里,destDirvaluesrc/META-INF

OK

6.Run XDoclet

选中工程,右键选择MyEclipse->Run XDoclet

Build successful

这时src目录下生成了6个文件

Com/ejb/HelloSession.java

Com/Interfaces/Hello.java

Com/Interfaces/HelloHome.java

Com/Interfaces/HelloUtil.java

META-INF/ejb-jar.xml      //EJB的部署文件

META-INF/weblogic-ejb-jar.xml

7.部署测试

启动weblogic服务器,在weblogic console下手工部署

Deployments 和上面的LOCK&EDIT

选择Install

按照目录(class文件目录),名字自己起,我的就叫CLASSES了,没有改

完成后,选Active Change,激活,看看有没有错误

准备好了,现在激活(START

处于Active状态,没有问题了。

也可以把EJB打包成一个JAR包,在weblogic console部署,打包命令:

 Jar cvf 包名.JAR com(包含class文件) META-INF(包含XML文件

8.开发客户端

新建JAVA文件

文件如下

package com.service;

 

import java.util.Properties;

import javax.naming.Context;

import javax.naming.InitialContext;

import com.interfaces.HelloHome;

 

public class HelloEJBClient {

    public static void main(String[] args)throws Exception{

       //设置客户端上下文(weblgoic的,要导入weblogic.jar,否则会出现:

//Cannot instantiate class: weblogic.jndi.WLInitialContextFactory 错误

       Properties props = new Properties();

       props.put(Context.INITIAL_CONTEXT_FACTORY,

"weblogic.jndi.WLInitialContextFactory");

       props.put(Context.PROVIDER_URL, "t3://localhost:7001");

       Context ctx=new InitialContext(props);

//通过JNDI NAME 查找 HOME 对象

       Object obj=ctx.lookup("ejb/HelloHome");

//类型转换

        HelloHome home=(HelloHome)javax.rmi.PortableRemoteObject.narrow

( obj,HelloHome.class);

//使用 HOME 对象创建 EJB 对象

       com.interfaces.Hello hello=home.create();

//调用 EJB 对象的业务方法

       System.out.println(hello.sayhello());

         //销毁 EJB 对象

       hello.remove();

    }

}

运行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值