Windows2000下安装J2EE和部署J2EE应用程序 |
时间:2014-05-04 10:05:07 来源:不详 作者:佚名 |
可以从以下网址下载一 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 目
|
在运行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中。本例中也可写为:
|
%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
|
Starting web service at port:9191 |
J2EE server startup complete. |
启动成功后,在IE浏 主 页 信 息 。
| 览 器 中 访 问 HTTP://localh
| ost:8000 可 以 看 到 默 认 的
|
J2EE应用程序一般使用RMI(远程方 也少不了EJB的作用。本例为一个J2EE应 Hello,Remote Object”。服务器收到该 客户端收到此应答后打印它。
| 法调用)来完成客户端与服务器的交互。当然,其间 用程序:客户端向服务器发送一个问候语:“ 问候语后打印该问候语,并返回一字符串作为应答。
|
* 定义一个新的接口继 出
| 承javax.ejb.EJBObject。新定
| 义的接口中的每一个方法都必须抛
|
* java.rmi.RemoteException异常。 |
public interface Rem
| oteInterface extends javax.e
| jb.EJBObject
|
public String message(String str
| )throws java.rmi.RemoteException;
|
* 定义一个类来实现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 void ejbCreate() {} |
public void ejbRemove() {} |
public void ejbActivate() {} |
public void ejbPassivate() {} |
public void setSessi
| onContext(javax.ejb.SessionC
| ontext sc) {}
|
* 定义一个类继承javax.ejb.EJBHome 。 |
public interface RemoteHome exte
| nds javax.ejb.EJBHome
|
RemoteInterface create()throws j javax.ejb.CreateException;
| ava.rmi.RemoteException,
|
public static void main(String[] args) |
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
|
假设以上四个Java文件存于C:HelloWorld下,编译它们如:C:HelloWorld>javac *.java 。 |
启动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便完成了部署工作。 |
新开一个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项将这 右键功能几乎没有,愦憾。
|
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 家给你的也许只有抱怨。除了界面 。
|
|
|
|
|