首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>编程开发>java>J2EE>正文

J2EE基础:开发第一个分布式的j2ee应用

http://www.oklinux.cn  2008-01-20  来源: ccidnet baocl  会员收藏  游客收藏  【 】 

这里先引用Charly的Windows2000下安装J2EE和部署J2EE应用程序中的部门内容
1. 安装
可以从以下网址下载一个J2EE(j2sdkee-1_3-beta2-win.exe):http://java.sun.com/j2ee/j2sdkee-beta/index.html。也许你已装了旧版的J2EE SDK 产品,假如是,在安装新下载的J2EE之前请先卸载或删掉旧版的J2EE SDK。运行j2sdkee-1_3-beta2-win.exe,按安装步骤安装好J2EE。这里假设你的J2EE安装在:C:\j2sdkee1.3 目录下。

2. 设置环境变量
在运行J2EE SDK之前,你必须设置以下环境变量:
J2EE_HOME - 你的J2EE SDK所安装的目录。如本例中的:C:\j2sdkee1.3 。
JAVA_HOME - 你的Java 2 SDK 所安装的目录。
PATH - 设置为你安装J2EE SDK目录下的bin目录。如本例的的:C:\j2sdkee1.3\bin 。
ClassPath - 增添%J2EE_HOME%\lib\j2ee.jar到ClassPath中。本例中也可写为:C:\j2sdkee1.3\lib\j2ee.jar

3. 运行J2EE
Dos命令行敲入以下命令:
%J2EE_HOME%\bin\j2ee -verbose
显示以下信息表示运行成功:(不同的版本显示可能不同)
J2EE server listen port: 1050
Naming service started:1050
Binding DataSource, name = jdbc/EstoreDB, url = jdbc:cloudscape:rmi:CloudscapeDB;create=true
Binding DataSource, name = jdbc/DB2, url = jdbc:cloudscape:rmi:CloudscapeDB;create=true
Binding DataSource, name = jdbc/Cloudscape, url = jdbc:cloudscape:rmi:CloudscapeDB;create=true
Binding DataSource, name = jdbc/InventoryDB, url = jdbc:cloudscape:rmi:CloudscapeDB;create=true
Binding DataSource, name = jdbc/DB1, url = jdbc:cloudscape:rmi:CloudscapeDB;create=true
Binding DataSource, name = jdbc/XACloudscape, url = jdbc/XACloudscape__xa
Binding DataSource, name = jdbc/XACloudscape__xa, dataSource = COM.cloudscape.core.RemoteXaDataSource@330913
Starting JMS service ... Initialization complete - waiting for client requests
Binding : < JMS Destination : jms/Queue , javax.jms.Queue >
Binding : < JMS Destination : jms/Topic , javax.jms.Topic >
Binding : < JMS Cnx Factory : jms/TopicConnectionFactory , Topic , No properties >
Binding : < JMS Cnx Factory : TopicConnectionFactory , Topic , No properties >
Binding : < JMS Cnx Factory : jms/QueueConnectionFactory , Queue , No properties >
Binding : < JMS Cnx Factory : QueueConnectionFactory , Queue , No properties >
Starting web service at port:8000
Starting secure web service at port:7000
Apache Tomcat/4.0-b4-dev
Starting web service at port:9191
Apache Tomcat/4.0-b4-dev
J2EE server startup complete.

启动成功后,在IE浏 览 器 中 访 问 http://localhost:8000 可 以 看 到 默 认 的 主 页 信 息 。

4. 编写和运行HelloWorld程序
J2EE应用程序一般使用RMI(远程方法调用)来完成客户端与服务器的交互。当然,其间也少不了EJB的作用。本例为一个J2EE应用程序:客户端向服务器发送一个问候语:“Hello,Remote Object”。服务器收到该问候语后打印该问候语,并返回一字符串作为应答。客户端收到此应答后打印它。

RemoteInterface.java

/**
* 第一步:
* 定义一个新的接口继续javax.ejb.EJBObject。新定义的接口中的每一个方法都必须抛出
* java.rmi.RemoteException异常。
*/
public interface RemoteInterface extends javax.ejb.EJBObject
{
public String message(String str)throws java.rmi.RemoteException;
}

RemoteObject.java

/**
* 第二步:
* 定义一个类来实现javax.ejb.SessionBean接口。并在该类中实现在第一步中编写的接口中所定义的方法。
*/
public class RemoteObject implements javax.ejb.SessionBean
{
public String message(String str)throws java.rmi.RemoteException
{
System.out.println("Remote Object Received From Client: \"" str "\""); //打印(从客户端)接收到的字符串。
return "Hello,I'm Remote Object,I received your message: \'" str "\'"; //返回一应答字符串。
}

public RemoteObject() {}
public void ejbCreate() {}
public void ejbRemove() {}
public void ejbActivate() {}
public void ejbPassivate() {}
public void setSessionContext(javax.ejb.SessionContext sc) {}
}

RemoteHome.java

/**
* 第三步:
* 定义一个类继续javax.ejb.EJBHome 。
*/
public interface RemoteHome extends javax.ejb.EJBHome
{
RemoteInterface create()throws java.rmi.RemoteException,javax.ejb.CreateException;
}

Client.java

/**
* 第四步:
* 定义客户端类。
*/
public class Client
{
public static void main(String[] args)
{
try
{
javax.naming.Context initContext=new javax.naming.InitialContext();
Object obj=initContext.lookup("HelloWorld"); //远程查找,由名字得到对应的对象。
RemoteHome home=(RemoteHome)javax.rmi.PortableRemoteObject.narrow(obj,RemoteHome.class);
RemoteInterface remote=home.create();
String receiveFromRemote=remote.message("Hello,Remote Object!"); //远程方法调用
System.out.println("Client Received From Remote Object: \"" receiveFromRemote "\"");
}
catch(Exception e)
{
e.printStackTrace();
}
}
}

假设以上四个Java文件存于C:\HelloWorld\下,编译它们如:C:\HelloWorld>javac *.java 。

5. 部署应用程序
启动Application Dopolyment Tool:新开一个Dos窗口,键入以下命令,%J2EE_HOME%\bin\deploytool 。该工具启动速度可能比较慢,要耐心等待。启动成功后会出现主界面(此时不要关闭Dos窗口)。在该界面中选 择 File菜 单 ,再选New Application项。在 Application File Name 输 入 :C:\HelloWorld\HelloWorld.ear 。在 Application Disply Name 输 入 你所喜欢的显示名如:HelloWorld。点 击 OK,在主界面的树形结构FilesApplications下将增加新的一项:HelloWorld。这意味着产生了一个新的应用程序。接下来我们要做的就是部署该应用程序。在主界面的树形结构下选中HelloWorld,然后再在主界面的File菜单中选取NewEnterprise Bean,在弹出的名为“New Enterprise Bean - Introduction”窗口中选取Next跳过第一步,在接下来的一步中,Create New EJB File in Application项中选HelloWorld,在EJB Display Name中填上你喜欢的名字如:Hello World EJB,点击Edit按钮,在弹出的窗口中,Start Directory中填:C:\HelloWorld\,在Available Files中展开树形结构C:\HelloWorld\,选取RemoteInterface.class、RemoteObject.class、RemoteHome.class、Client.class四项,点Add按钮添加,然后按OK确定。此时在Contents框中增加了该四个class。点Next进入下一步。Session项选Stateless,意为不保存session状态。Enterprise Bean Class选RemoteObject。Enterprise Bean Name中填上你喜欢的名字如:Hello World Bean。Remote Home Interface中选RemoteHome,Remote Interface中选RemoteInterface。选Next进入下一步。接下来的步骤可直接点Finish。这时主界面的树形结构中FilesApplicationHello World中将出现Hello World EJBHello World Bean子项。在主界面的树形结构下选中Hello World,然后再在主界面的Tools菜单中选取Deploy,将弹出新的窗口名为“Deploy Hello World - Introduction”。Object to deploy中选Hello World,Target server中选localhost,选中Retuen Client Jar,在Client Jar File Name中填上:C:\HelloWorld\HelloWorldClient.jar。选Next进入下一步,在Application框的JNDI Name框中双击并填上HelloWorld,注重必须与Client.java中Object obj=initContext.lookup("HelloWorld")的“HelloWorld”保持一致。点Next进入下一步。点Finish完成。这时将出现Deployment Progress窗口。假如有误,该窗口将出现异常信息。假如一切正常,点OK便完成了部署工作。

共2页: 上一页 1 [2] 下一页

上一篇:JAVA高级--Socket编程中的一个秘密类   下一篇:J2EE基础:步入J2EE架构和过程


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·J2EE基础:步入J2EE架构和过程
·[J2EE] JNDI定义Oracle数据源的方法
·J2EE:教你提升JSP应用程序的七大绝招
·J2EE--关于JAVA的分页查询操作技术
·J2EE基础:几种Portal技术的比较与评述
·J2EE基础:在Struts 2中实现文件上传
·J2EE基础:web开发需要注意的一些地方
·J2EE基础:Spring中事件处理的小技巧
·J2EE基础:为什么jsp不能取代servlet?
·J2EE基础:Servlet/JSP服务器端的重定向
·J2EE基础--weblogic的几个基础问题
·J2EE:用RMI和CORBA进行分布式Java编程
·J2EE基础:j2ee所包含的13种核心技术
·solaris上开发J2EE应用中文问题的解决
·J2EE基础:Spring的MVC模型运行序列分析
·J2EE--关于用JAVA开发短信方面的知识
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·一个用JAVA写的测算服务器响应速度程序
·软件测试:软件测试的基础知识概要介绍
·J2EE综合--浅析Java程序员的存储过程
·J2EE综合:业务逻辑和数据库的访问决策
·J2EE综合:关于Java EJB容器存取和实现
·J2EE综合--Java企业系统架构的选择考量
·J2EE综合--java语言不一定就跨平台
·J2EE综合--对Struts中常见错误的汇总
·J2EE综合:开发J2EE应用应遵循的几点原
·J2EE综合:Java EE/J2EE面向对象编程之
·提高J2EE层与数据库层交互操作能力的优
·开发J2EE应用时应该遵循的几个基本准则
  阅读排行
·对J2EE开发中常用开源项目的介绍
·J2EE综合--关于权限设计的详细探讨
·J2EE--关于JAVA的分页查询操作技术
·J2EE综合--Java企业系统架构选择考量
·J2EE基础:j2ee所包含的13种核心技术
·J2EE综合:Struts上传多个文件的例子
·J2EE基础:在Struts 2中实现文件上传
·J2EE综合--业务逻辑和数据库访问决策
·与你共同分享12个最重要的J2EE最佳实践
·J2EE综合--浅谈Java程序员的存储过程
·J2EE综合--Java EJB容器的存取和实现
·J2EE综合--JAVA开发工具安装配置心得
·J2EE综合--总结java编程中的经验教训
·J2EE综合--java语言不一定就跨平台
·J2EE基础:Struts开发中异常处理机制
网摘收藏: