转载自http://blog.sina.com.cn/s/blog_678530f60100hxaf.html

说是转载,其实这是我个人在几年前新浪博客上发表的文章。



帮导师搞了一周的EJB,总算初步搞定。

一。问题的需求。

    要求在WebLogic(简称W)上部署一个EJB组件,根据客户端输入的数值n,实现n的Fibonacci值;

二。环境配置

    这里我走了不少弯路。Eclipse(简称E)、MyEclipse(简称M)、JDK(简称J)和W之间的配置很麻烦,之间的版本问题很重要。我之前装J1.4后,E2版本是不能用的;装J1.5后,W8版本是不能用的。这里我用的是E3.2.2、M5.0.1、J1.5和W9.2。

    装好了J之后,需要配置环境变量,这个网上很多;E是直接解压缩放在C盘下;M安装在E的路径中(网上说将M默认安装后将plugins和features两个文件夹覆盖E中的相应文件夹即可,至少在我这里行不通);W安装在C盘下。

三。具体步骤

    1.打开E,最好将工作区间设在E的路径中,也就是一般按照它的默认路径就可以了;

    2.在菜单栏的“windows”下选择“preferrences”,然后进行设置,如下图所示。

   

eclipse+MyEclipse+WebLogic开发简单的EJB



    点击“Application Servers”选择服务器,这里选择刚才安装的W9.之后在右半边区域进行设置,如下图所示。

    eclipse+MyEclipse+WebLogic开发简单的EJB

在左半边区域的W9下的JDK中进行设置,如下图所示:

eclipse+MyEclipse+WebLogic开发简单的EJB

点击“Add”选择W目录下的JDK文件夹即可。

     3.此时可以开发EJB了。如下图所示,新建一个EJB工程:(下图为网上摘录,不过与本人开发界面相同,故省去自己截图的麻烦)

ejb1.jpg

ejb2.jpg

 

可在这里将工程名字换成Fibonacci。点击完成即可。

接下来在Fibonacci工程上右击,选择New,添加一个SessionBean,如下图所示:

ejb4.jpg

按下图去配置:

ejb5.jpg

注意,这里的HelloWorld全部换为Fibonacci。

至此,E已经为你生成好了一部分代码。

打开Fibonacci.java文件,找到最后一个方法,这个方法名告诉你可以将其替换为你想要的方法名。这里将其替换为:

public long getFibonacci(int n) throws EJBException {
  // rename and start putting your business logic here
  if(n==0) return 1;
  else if (n==1) return 1;
  else
   return getFibonacci(n - 1) + getFibonacci(n - 2);
 }

此时在工程上右击选择属性,如下图所示:

ejb16.jpg

这里添加外部Jar,就是添加W9安装目录下的weblogic92->server->lib->weblogic.jar,将其添加进来。

接着选择XDoclet选项,如下图所示:

ejb7.jpg

 

ejb8.jpg

 

ejb9.jpg

 

ejb10.jpg

 

ejb11.jpg

 

ejb12.jpg

 

ejb13.jpg

 

ejb14.jpg

 

此时Fibonacci工程项目已经配置完毕,是不是很复杂呢?呵呵

接下来,在工程商右击,选择M->"add and remove project deployment",添加W9即可。

此时在界面最下面的“server”标签,你可以看到W9。运行它,在console你可以看到服务器运行情况。一般而言,是正常运行的,你可以看到Fibonacci组件已经成功配置。

接下来就是写客户端了。这个是很简单的事情,新建一个类即可,取名为FibonacciTest。

客户端代码如下:

package com;

import java.rmi.RemoteException;
import java.util.Properties;

import javax.ejb.CreateException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import com.interfaces.Fibonacci;
import com.interfaces.FibonacciHome;

public class FibonacciTest {

 
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Properties properties=new Properties();
  properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
  properties.setProperty(Context.PROVIDER_URL,"t3://localhost:7001");
          
  Context context;
  try {
        context = new InitialContext(properties);
        FibonacciHome fh=(FibonacciHome)context.lookup("ejb/Fibonacci");
        Fibonacci f=fh.create();
        long result=0;
        for (int i = 40; i >= 0; i--)
          {
            result = f.getFibonacci(i);
            System.out.println("Fibonacci of" + i + " is " + result);
          }
      } catch (NamingException e) {
        // TODO 自动生成 catch 块
        e.printStackTrace();
        } catch (RemoteException e) {
        // TODO 自动生成 catch 块
        e.printStackTrace();
        } catch (CreateException e) {
        // TODO 自动生成 catch 块
        e.printStackTrace();
        }
 }

}

至此可以运行看看结果。不过,E里的run as里有很多选项,我选择的是Java Project。其他的选项我还没有进行细究。

 

 

至此已经全部配置完毕。你可以在W的安装目录下mydomain中看到刚刚部署的Fibonacci组件。在E的用户空间中也可以看到。

 

总结:虽然看似上面这些很简单,却是我摸索了近一周的时间。

现在导师要求我手动将所有的class文件打包jar文件,并通过W的控制台界面进行部署。这个仍在研究中。

posted on 2016-12-28 11:06  C语言答疑课堂  阅读(361)  评论(0编辑  收藏  举报