在Weblogic8.1 sp4上部署第一个HelloWorld EJB

很多书上都有第一个EJB,也都讲了如何部署EJB,可是大部分都是讲通用的部分,对于某一个特定的服务器,都没有细讲。导致作为初学者的笔者,很难跨越这第一个门槛。对于作为初学者的笔者来说,这篇文章有价值的有两部分,一部分为JNDI配置运行环境,一部分为如何通过weblogic-ejb-jar.xml发布EJB服务。

为了其他的初学者不用花太多的时间迈这道门槛,笔者将自己的体会写出来,仅供大家参考,更希望众位高手,多多指教!

关于第一个EJB的远程/本地接口、远程Home/本地Home接口,EnterpriseBean,我在这里不会特别强调,会给出代码。因为这部分几乎所有的书上都有。

再次特别强调部署的xml文件。

ejb-jar.xml和weblogic-ejb-jar.xml。

下面我把这两部分贴出来,供大家参考!

------ejb-jar.xml开始-----------------------------------------

<ejb-jar>
  <display-name>HelloWorld</display-name>
  <enterprise-beans>
    <session>
      <display-name>Hello</display-name>
      <ejb-name>Hello</ejb-name>
      <home>HelloHome</home>
      <remote>Hello</remote>
      <local-home>HelloLocalHome</local-home>
      <local>HelloLocal</local>
      <ejb-class>HelloBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Container</transaction-type>
    </session>
  </enterprise-beans>

  <assembly-descriptor>
    <container-transaction>
      <method>
        <ejb-name>Hello</ejb-name>
        <method-name>*</method-name>
      </method>
      <trans-attribute>Required</trans-attribute>
    </container-transaction>
  </assembly-descriptor>

</ejb-jar>

------ejb-jar.xml结束-----------------------------------------
------weblogic-ejb-jar.xml开始-----------------------------------------
<weblogic-ejb-jar>
  <weblogic-enterprise-bean>
    <ejb-name>Hello</ejb-name>
    <jndi-name>Hello</jndi-name>
    <remote-client-timeout>0</remote-client-timeout>
  </weblogic-enterprise-bean>
</weblogic-ejb-jar>
------weblogic-ejb-jar.xml结束-----------------------------------------
显然,这是非常简单的,可是没人指导的情况下,总是让人很头疼,通常都是不知道weblogic-ejb-jar.xml如何设置。
这两个文件要放到EJBModule的META_INF当中
下面看看这个Hello的几个代码。
----Hello.java------------------------------------------
import javax.ejb.EJBObject;
import java.rmi.*;
public interface Hello extends EJBObject {
public String Hello() throws RemoteException;
}
----HelloHome.java--------------------------------------
import javax.ejb.*;
import java.rmi.*;

public interface HelloHome extends EJBHome {
public Hello create() throws RemoteException,CreateException;
}
----HelloLocal.java--------------------------------------
import javax.ejb.EJBLocalObject;

public interface HelloLocal extends EJBLocalObject {
public String Hello() ;
}
----HelloLocalHome.java----------------------------------
import javax.ejb.EJBLocalHome;

public interface HelloLocalHome extends EJBLocalHome {
public HelloLocal create() throws javax.ejb.CreateException;
}
----HelloBean.java---------------------------------------
import javax.ejb.*;
import java.rmi.*;
public class HelloBean implements SessionBean{
public HelloBean() {
}
public void ejbCreate(){}
public void ejbActivate()throws EJBException,RemoteException{}
public void ejbRemove()throws EJBException,RemoteException{}
public void setSessionContext(SessionContext ctx)throws EJBException,RemoteException{}
public void ejbPassivate()throws EJBException,RemoteException{}
    public String Hello(){return "Hello World";}
}
--------------------------------------------------------------
这样这个EJB就算是比较全了,经过打包以后部署到服务器中,就算OK了。
下面说一下,如何通过客户端来使用这个EJB.这个地方也是比较不容易顺利通过的。
第一步:配置运行环境。
对于初学者来说,要懂得JNDI的知识。我们要使用JNDI来查找远程服务器端提供的服务。
在客户端有几种方式:
1、向Java运行目录中JNDI属性文件中添加属性;
2、为程序提供资源文件;
3、制定传递至应用程序的命令行参数;
4、制定传递到applet的参数;
5、在程序中硬编码(Hard-code)参数。
这里我们使用第一种方式。
我的bea安装到了E:下,他自己默认的jdk的运行目录为
E:beajdk142_05jre
我们要在E:/bea/jdk142_05/jre/lib目录下添加一个名字为jndi.properties的文件(如果没有这个文件的话)
内容如下:
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.provider.url=t3://172.29.26.168:7001
需要修改的是第二行的IP字段,修改成提供服务的服务器IP地址和端口号即可。
注意:由于我们指定了weblogic.jndi.WLInitialContextFactory所以,在系统环境变量中
我们要将weblogic.jar包含到CLASSPATH当中,当然j2ee.jar也要包含进去。至此,如果笔者没记错的话,运行环境算是配置完了。
第二步:获得该EJB的本地或远程接口类文件,或者是一个经过打包的jar文件,即客户端jar文件,也要包含到CLASSPATH中去。
这样基本上就可以运行客户端测试了。下面是客户端代码:
------------------------------------------
import javax.naming.Context;
import javax.naming.InitialContext;
import java.util.Properties;
public class HelloClient {
public HelloClient() {
}
    public static void main(String []args)throws Exception{
Properties props=System.getProperties();

Context ctx=new InitialContext();

Object obj=ctx.lookup("Hello");
HelloHome Home=(HelloHome)javax.rmi.PortableRemoteObject.narrow(obj,HelloHome.class);
Hello hello=Home.create();
System.out.println(hello.Hello());
}
}
建议:如果在JBuild2006中运行这个程序会非常的容易。当然您也可以通过命令行来运行。
如前文所述,笔者对于如何编写weblogic-ejb-jar.xml和如何让客户端获得运行环境方面着重说明,其他部分网上很多都有,故不详细说明!
如果上述过程仍然不能让您运行您的第一个EJB,请与笔者联系:
email:barryzhong@163.com
QQ:84639006
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值