帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > JAVA编程
Windows2000下安装J2EE和部署J2EE应用程序
作者:佚名 发布时间:2005-04-02 来源:不详
 
   1. 安装                                                                  
  可以从以下网址下载一
java.sun.com/j2ee/j2sdke
是,在安装新下载的J2EE之
1_3-beta2-win.exe,按安
录下。
个J2EE(j2sdkee-1_3-beta2-wi
e-beta/index.html。也许你已
前请先卸载或删掉旧版的J2EE S
装步骤安装好J2EE。这里假设你

n.exe):http://
装了旧版的J2EE SDK 产品,如果
DK。运行j2sdkee-
的J2EE安装在:C:j2sdkee1.3 目


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


  3. 运行J2EE                                                            
  Dos命令行敲入以下命令:                                                    
  %J2EE_HOME%binj2ee -verbose                    
  显示以下信息表示运行成功:(不同的版本显示可能不同)                          
  J2EE server listen port: 1050                    
  Naming service started:1050                        
  Binding DataSource, name = jdbc/
udscape:rmi:CloudscapeDB;create=true
EstoreDB, url = jdbc:clo

  Binding DataSource,
loudscapeDB;create=true
name = jdbc/DB2, url = jdbc:

cloudscape:rmi:C

  Binding DataSource, name = jdbc/
loudscape:rmi:CloudscapeDB;create=tr
Cloudscape, url = jdbc:c
ue
  Binding DataSource,
pe:rmi:CloudscapeDB;crea
name = jdbc/InventoryDB, url
te=true
= jdbc:cloudsca

  Binding DataSource,
loudscapeDB;create=true
name = jdbc/DB1, url = jdbc:

cloudscape:rmi:C

  Binding DataSource,
name = jdbc/XACloudscape, ur
l = jdbc/XACloudscape__xa
  Binding DataSource, name = jdbc/
COM.cloudscape.core.RemoteXaDataSour
XACloudscape__xa, dataSource =
ce@330913
  Starting JMS service ... Initial
ization 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://localh

ost:8000 可 以 看 到 默 认 的


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


  RemoteInterface.java                                      

  /**                                                                        
  * 第一步:                                                                  
  * 定义一个新的接口继

承javax.ejb.EJBObject。新定

义的接口中的每一个方法都必须抛

  * java.rmi.RemoteException异常。                    
  */                                                                          
  public interface Rem
oteInterface extends javax.e
jb.EJBObject
  {                                                                            
  public String message(String str
)throws java.rmi.RemoteException;
  }                                                                            

  RemoteObject.java                                            

  /**                                                                        
  * 第二步:                                                                  
  * 定义一个类来实现ja
口中所定义的方法。
vax.ejb.SessionBean接口。并

在该类中实现在第一步中编写的接

  */                                                                          
  public class RemoteObject implem
ents javax.ejb.SessionBean
  {                                                                            
  public String messag
e(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 setSessi
onContext(javax.ejb.SessionC
ontext sc) {}
  }                                                                            

  RemoteHome.java                                                

  /**                                                                        
  * 第三步:                                                                  
  * 定义一个类继承javax.ejb.EJBHome 。                      
  */                                                                          
  public interface RemoteHome exte
nds javax.ejb.EJBHome
  {                                                                            
  RemoteInterface create()throws j
javax.ejb.CreateException;
ava.rmi.RemoteException,

  }                                                                            

  Client.java                                                        

  /**                                                                        
  * 第四步:                                                                  
  * 定义客户端类。                                                            
  */                                                                          
  public class Client                                        
  {                                                                            
  public static void main(String[] args)  
  {                                                                            
  try                                                                        
  {                                                                            
  javax.naming.Context
initContext=new javax.namin
g.InitialContext();
  Object obj=initConte

xt.lookup("HelloWorld"); //

远程查找,由名字得到对应的对象

  RemoteHome home=(RemoteHome)java
ct.narrow(obj,RemoteHome.class);
x.rmi.PortableRemoteObje

  RemoteInterface remote=home.create();    
  String receiveFromRemote=remote.

message("Hello,Remote Object!"); //远程方法调

  System.out.println("
iveFromRemote+""");
Client Received From Remote

Object: ""+rece

  }                                                                            
  catch(Exception e)                                          
  {                                                                            
  e.printStackTrace();                                      
  }                                                                            
  }                                                                            
  }                                                                            

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


  5. 部署应用程序                                                            
  启动Application Dopolyment Tool:新开一个Dos窗口,键入以下命令,%J2EE_HOME%bindeploytool 。该工具启动速度可能比较慢,要耐心等待。启动成功后会出现主界面(此时不要关闭Dos窗口)。在该界面中选 择 File菜 单 ,再选New Application项。在 Application File Name 输 入 :C:HelloWorldHelloWorld.ear 。在 Application Disply Name 输 入 你所喜欢的显示名如:HelloWorld。点 击 OK,在主界面的树形结构Files-->Applications下将增加新的一项:HelloWorld。这意味着产生了一个新的应用程序。接下来我们要做的就是部署该应用程序。在主界面的树形结构下选中HelloWorld,然后再在主界面的File菜单中选取New-->Enterprise 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。这时主界面的树形结构中Files-->Application-->Hello World中将出现Hello World EJB-->Hello 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:HelloWorldHelloWorldClient.jar。选Next进入下一步,在Application框的JNDI Name框中双击并填上HelloWorld,注意必须与Client.java中Object obj=initContext.lookup("HelloWorld")的“HelloWorld”保持一致。点Next进入下一步。点Finish完成。这时将出现Deployment Progress窗口。如果有误,该窗口将出现异常信息。如果一切正常,点OK便完成了部署工作。


  6. 运行应用程序                                                            
  新开一个Dos窗口。进入C:HelloWorldClasses目录下运行:C: HelloWorldClasses>java -classpath %J2EE_HOME%libj2ee.jar;.;HelloWorldClient.jar; Client 。运行成功则出现如下信息:Client Received From Remote Object: "Hello,I'm Remote Object,I received your message: 'Hello,Remote Object!'" 。而服务端Dos窗口(j2ee -verbose)中出现如下信息:Remote Object Received From Client: "Hello,Remote Object!" 。


  本程序很适J2EE的入门
保无误。如不能正常运行,
Copy到Dos窗口中运行,某
程序部署不成功,可以使用
个应用程序(如:Hello Wo
,简单而明了。本程序由Charly
请检查你的环境变量设置是否正
些字符可能受中文全角字符的影
Application Deployment Tool
rld)或其子项删掉。此工具的
设计编写,并由其本人多次运行确
确,最好不要直接将以上各命令
响而不被识别。另外如果某个应用
主界面的Edit菜单的Delete项将这
右键功能几乎没有,愦憾。


  7. 总结                                                                    
  Sun为rmi、Servlet(JS
是一个大的综合和封装。它
年(2000年)在大中华范围
成明日黄花,不过Microsof
,Sun自然对J2EE寄予厚望
还没有其它哪门语言能与之
客户端可包括浏览器,桌面
用(Application)服务,
服务端提出请求(Web服务
持,服务端则直接或在EJB
户端;如果不需要后台企业
求,并将结果返回至客户端
取 控 制 规 则 。应该说
有数不尽的优势:速度快(
Java的规格和严谨)、成熟
也算不错,只是其使用的标
的程序哪个不存在以下情形
有些夸张,但不过分);界
这与软件生产者有关,但Sw
Oracle的Jdeveloper、IBM
提升硬件来迷补其不足(虽
ERP或其中的某一环节,用
写的,所以很慢?对不起,
部分外,J2EE的应用服务应
P)、JavaBean等Java技术摇旗呐
的出现应该说是这些技术走向成
的书店中都少有介绍,几近没有
t C#的推出是否会让它有所改变
。应该说,Sun的Java设计一直
匹敌。J2EE的设计自然也是大手
应用程序,甚至其它设备如PDA
这分别是Servlet(JSP)和rmi技
或应用服务),该请求如果需要
支持下来操作后台企业信息系统
信息系统(数据库)支持,服务
。当然其间各环节都少不了安全
,J2EE的Web应用会取得很大成
比ASP、PHP可能快好几倍)、跨
(实际应用已久且应用广泛)、
准界面Swing实在是太耗资源且
:程序启动时象国产拖拉机,轰
面刷新慢,明显的延时;操作不
ing要负一部分责任)。此如说S
的Websphere都有此症。作为程
然至今还是不足)。但作为客户
起来有如此顽症,怎么向人家解
人家不会关心你用什么写的,人
该说是很不错的,如分布式计算
喊已有多年。J2EE的出现不可谓不
熟的结果。举个例子,JSP技术去
。现在业已铺天盖地。ASP似乎已
?有待观察。面对竞争对手的压力
都很规格和严谨。在这方面,当今
笔。J2EE被设计成多层次的结构。
程序。服务端可以为Web服务和应
术的体现。客户端通过网络协议向
后台企业信息系统(如数据库)支
(如数据库),并将结果返回至客
端则直接或在EJB支持下处理该请
控制:J2EE的标 准 的 公 开 存
功,因为Servlet(JSP)在Web方面
平台、稳定(这不能不说是得益于
功能强大。而J2EE的应用服务应该
效率低。君不见,当今用Swing写
隆轰隆地响--那是读硬盘的声音(
方便,快捷键和右键功能少(当然
un的Forte4Java、J2EE SDK、
序员,我们也许还能接受,以不断
企业,你用Swing给人家做了一个
释?向他(她)说,这是用Swing
家给你的也许只有抱怨。除了界面


  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·从商业角度分析J2EE与WINDOWS DN  (2005-04-02)
 ·从商业角度分析J2EE与WINDOWS DN  (2005-04-02)
 ·WINDOWS 2000搭載ASP3.0和IIS5.0  (2005-03-12)
 ·把NT 4.0下的ASP应用迁移到Windo  (2005-03-12)
 ·把NT 4.0下的ASP应用迁移到Windo  (2005-03-12)
 ·把NT 4.0下的ASP应用迁移到Windo  (2005-03-12)
 ·把NT 4.0下的ASP应用迁移到Windo  (2005-03-12)
 ·在Windows桌面上使用WSH接收邮件  (2005-03-12)
 ·把NT 4.0下的ASP应用迁移到Windo  (2005-03-12)
 ·把NT 4.0下的ASP应用迁移到Windo  (2005-03-12)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·谈谈JDBC
·JDBC专题介绍
·JDBC接口技术
·利用weblogic的POOL(连接池)连接
·Jsp中调用Oracle存储过程的小例子
·JSP数据库操作例程
·JSP数据库连接大全
·用连接池提高Servlet访问数据库的效
·一种简单JDBC连接池的实现
·数据库连接池Java实现小结
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统