eclipse+MyEclipse+WebLogic开发简单的EJB
转载自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”,然后进行设置,如下图所示。
点击“Application Servers”选择服务器,这里选择刚才安装的W9.之后在右半边区域进行设置,如下图所示。
在左半边区域的W9下的JDK中进行设置,如下图所示:
点击“Add”选择W目录下的JDK文件夹即可。
3.此时可以开发EJB了。如下图所示,新建一个EJB工程:(下图为网上摘录,不过与本人开发界面相同,故省去自己截图的麻烦)
可在这里将工程名字换成Fibonacci。点击完成即可。
接下来在Fibonacci工程上右击,选择New,添加一个SessionBean,如下图所示:
按下图去配置:
注意,这里的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);
}
此时在工程上右击选择属性,如下图所示:
这里添加外部Jar,就是添加W9安装目录下的weblogic92->server->lib->weblogic.jar,将其添加进来。
接着选择XDoclet选项,如下图所示:
此时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的控制台界面进行部署。这个仍在研究中。
eclipse+MyEclipse+WebLogic开发简单的EJB的更多相关文章
- JDK+Eclipse+MyEclipse+tomcat的安装与配置
以下我所使用的各软件版本为:JDK(1.6):eclipse(3.2.2):myEclipse(5.5.1GA):tomcat(5.5.12): 一.安装JDK: 下载完JDK(1.6)后双击进行安装 ...
- Hadoop项目开发环境搭建(Eclipse\MyEclipse + Maven)
写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Mav ...
- MapReduce 开发环境搭建(Eclipse\MyEclipse + Maven)
写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Mav ...
- 转载 Elasticsearch开发环境搭建(Eclipse\MyEclipse + Maven)
概要: 1.使用Eclipse搭建Elasticsearch详情参考下面链接 2.Java Elasticsearch 配置 3.ElasticSearch Java Api(一) -添加数据创建索引 ...
- Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Maven)
写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) 我这里,相信,能看此博客的朋友,想必是有一定基础的了.我前期写了大量的基础性博文. ...
- Hive项目开发环境搭建(Eclipse\MyEclipse + Maven)
写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Mav ...
- Elasticsearch开发环境搭建(Eclipse\MyEclipse + Maven)
前提是, Elasticsearch 编程API入门系列---说在前面的话 Eclipse下Maven新建项目.自动打依赖jar包(包含普通项目和Web项目) setting.xml配置文件 如何在M ...
- 极其简单的搭建eclipse的android开发环境
这篇博客是关于如何搭建eclipse的android开发环境, 与网上的其他博客不同,我的方法比他们简单的多,所 以推荐给大家. 搭建eclipse的android开发环境步骤: 1.配置JDK(Ja ...
- Eclipse/Myeclipse 开发项目技巧
Eclipse/Myeclipse 开发项目 编程的本质: 把现实生活中的业务逻辑用代码实现. eclipse 是一个开放源代码.基于Java的可扩展开发平台. (最初主要用来Java语言开发,但目前 ...
随机推荐
- QDialog在hide()之后,就被销毁的原因
一路跟踪源码,关键就是这两句: int QDialog::exec() { Q_D(QDialog); if (d->eventLoop) { qWarning("QDialog::e ...
- 深入理解Amazon Alexa Skill(四)
本节利用三星Smartthings Classic物联网平台的web service smartapp,实现了一个Alexa智能家居skill的例子,由此来了解Alexa是如何控制其他云的智能家居设备 ...
- 浅谈.NET(C#)与Windows用户账户信息的获取
原文:浅谈.NET(C#)与Windows用户账户信息的获取 目录 1. 用户账户名称 - 使用Environment类 2. 用户账户信息 - 使用WindowsIdentity和IdentityR ...
- Android零基础入门第49节:AdapterViewFlipper图片轮播
原文:Android零基础入门第49节:AdapterViewFlipper图片轮播 上一期学习了ExpandableListView的使用,你已经掌握了吗?本期开始学习AdapterViewFilp ...
- Delphi皮肤之 - 图片按钮
效果如图,支持普通.移上去.按下.弹起.禁用5种状态. unit BmpBtn; interface uses Windows, Messages, SysUtils, Classes, Graphi ...
- .NET DataTable转换为JSON格式的字符串
在进行数据传递的时候,有时我们需要通过Ajax的方式或者其他的方式传递一个数据列表,可以将DataTable或者其他形式的数据列表转换为JSON的格式,通过Ajax实体的形式进行传递. 比如说: // ...
- Qt浅谈之二十七进程间通信之QtDBus good
一.简介 DBus的出现,使得Linux进程间通信更加便捷,不仅可以和用户空间应用程序进行通信,而且还可以和内核的程序进行通信,DBus使得Linux变得更加智能,更加具有交互性. DB ...
- 转一个git的命令
Git远程操作详解 Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作. git clone git rem ...
- Linux实现彩色提示符
更改用户目录下的.bashrc 加入: export PS1='\[\e[33m\][\u@\h:\W]\$ \[\e[m\]' 例如: # .bashrc # User specific alias ...
- Tensorflow 又要升级了。Nvidia驱动升级,牵一发而动全身
如题. 以前好好的,在宿主主机上,升级了下Linux的内核到4.15.0-13 Ubuntu16.04 以前的nvidia 驱动竟然也调了.用tensorflow 的GPU加速,必须使用nvidia ...