JSPCN主页 | JSP空间 | 网站制作 | JSP下载 | JSP论坛 | JSP教程 | 关于JSPCN | 联系我们
JSP虚拟主机,jsp空间,java空间,java虚拟空间,详细请点击进入
做最专业的JSP中文网站 当前位置首页--JSP技术--教程系列  
文章搜索:
关键字 标题
  
JSP中文网内容管理系统(JCMS)
JSP虚拟主机
网络笔记本
网摘,图片,笔记收藏
虚拟服务器

JSPCN文章目录分类
JSP配置[219]JSP基础[136]
中文问题[69]上传问题[27]
JAVABEAN[46]数据库[212]
文件操作[126]图片声音[17]
JSP其他[57]时间相关[16]
JAVAMAIL[72]STRUTS[144]
开发工具[28]教程系列[157]
JSP实例[89]
JAVA基础[421]APPLET[78]
JAVA网络[179]Applica[115]
Servlet[98]XML[163]
J2ME[257]J2EE[374]
考试相关[63]JAVA线程[90]
EJB[261]Swing[26]
Java API[141]声音图片[28]
异常处理[33]JAVA实例[290]
JAVA类[139]SUN[89]
Hibernate[6]JMX[8]
Spring[34]
本版推荐文章 
本版热点文章 
相关文章链接 
 
JSP的环境引擎--Enhydra
作者:     文章来源:
访问次数:23次     加入时间:2007年01月27日
摘要

  Enhydra――海獭是种哺乳动物,它会从海底涝贝壳,然后躺在海面上,把贝壳放在肚皮上用涝起来的石头砸碎再吃,它一生都生活在海里,是真正的冲浪高手,现在的互联网就像大海,丰富而又无处不在,我们也想象海獭一样去冲浪,于是互联网中的Enhydra诞生了。

(2002-09-06 14:08:21)

--------------------------------------------------------------------------------
By Wing


Enhydra的特点

  Enhydra――海獭是种哺乳动物,它会从海底涝贝壳,然后躺在海面上,把贝壳放在肚皮上用涝起来的石头砸碎再吃,它一生都生活在海里,是真正的冲浪高手,现在的互联网就像大海,丰富而又无处不在,我们也想象海獭一样去冲浪,于是互联网中的Enhydra诞生了。

  Enhydra作为一个应用服务的开发平台,是基于J2EE标准,在Java虚拟机之上建立的。Enhydra运用了已经在Java中比较成熟的面向对象的技术来设计它本身的层次结构,利用了Java强大的功能、优秀的可移植性,继承了Java精良的模块化、层次化设计思想。这种与Java的密切关系使得Enhydra自然具备了优良的可移植性、可扩展性,使其可以适应现今跨平台、多层结构的应用服务任务。

  源码开放保证了Enhydra强大的生命力和可扩展性, 这一举措将大大提高enhydra的开发速度,Lutris正在把Enhydra与Bull软件公司的企业Java Bean服务器和法国电信CORBA对象请求代理软件进行系统集成,这将使Enhydra支持无线设备。由于它的源码开放,我们可以站在巨人的肩膀上看世界,不断获得各种技术资料和帮助。

  Enhydra产品主要包括Enhydra Application Server 和 Enhydra development environment主要有几部分构成:

  Multiserver:可以单独或者和其他Web Server挂接在一起运行Enhydra application。

  Enhydra application:是运行在Multiserver下,同时在运行时使用application framework的java程序。

  The application framework :enhydra应用程序框架提供Web应用所应有的最底层结构,它分为三个独立的层次: 表示层(The presentation layer)、商务层(The business layer)、数据层(The data layer)。 也就是说,利用它,只需向框架中加入一个应用程序对象和一系列表示层、商务层、数据层对象构成有机的整体即可搭构一个应用程序对象。而且维护起来相当的方便。

Enhydra tools :开发Enhydra 应用的工具。

  要讲清楚Enhydra的作用,首先让我们来看看服务器端运行模式的改变。以前,当客户机浏览器发出对某种信息或是服务的请求时,Web服务器接受并处理这种请求,向数据库请求数据,得到数据后,回送给客户机,这种两层结构即为我们所熟知的client/server模式,如图。

  客户机<-------- >Web服务器<--------->数据库

  现在不同了,随着对互联网需求的增加,特别是全球电子商务市场的迅猛发展,我们要建立的网站是要满足几万几十万用户同时访问的要求,Web服务器要处理的任务越来越复杂,对于数据库的访问越来越多,使用旧的client/server模式发展电子商务是无法想像的,于是提出了一种新的三层模式,如图所示。

  客户机<--------> Web服务器<--------->应用服务器<-------->数据库

  在Web服务器和数据库之间加入了一个应用服务器。事实上这个应用服务器在client/server模式中就已存在,但它分散在客户层和数据库服务器层,现在我们把它的分散的两部分提取出来,组成专门的应用服务器,使客户层变"瘦",使数据库服务器更专注数据库操作。要构成这个应用服务器,首先要有一个类似于操作系统的运行环境,也就是"中间件",准确的讲"中间件"就是指位于应用服务器平台(操作系统、硬件)与应用程序之间的软件产品,应用程序在其支持下运行。当Web服务器接收到来自客户机的请求时,将请求发送到应用服务器去处理,在应用服务器上运行着中间件平台,其上运行相应的处理这种请求的应用程序,这些应用程序对请求进行处理,访问数据库,并向Web服务器传送处理结果。

  Enhydra环境本身就是运行在应用服务器上的中间件产品,准确的讲,它是中间件组的集成,并构成了一个平台,这个平台包括开发平台和运行平台。即使用Enhydra环境中的工具开发出来的应用程序,在Enhydra运行环境上运行。

  Enhydra作为中间件产品有很多优点,它对各种硬件平台、操作系统、数据库以及Client端实现了兼容。Enhydra运行环境可以在多种硬件平台和操作系统上运行,当我们要改变硬件或软件环境时,只需把在Enhydra开发环境中编写的应用程序用很少的时间重新编译即可。利用Enhydra开发应用产品可以降低开发成本,提高工作效率。比如Enhydra开发环境已经为您提供了标准应用程序框架,如何响应,如何处理,如何访问数据库等等程序的结构非常清晰。这些基础程序的开发在工作中本来要占用大量的时间和经费,使用Enhydra,我们可以将精力更多的用在业务应用程序上。

  此外,Enhydra有很多特性,它是Open Source的,你不用为使用它而花钱, 同时会有很多人来丰富它改进它,这些人不再局限于某一个公司某一个国家。Open Source 必将是软件业发展的主流,在这方面Enhydra走在世界的前面。Enhydra的应用程序要求使用JAVA语言来编写,这就使得应用程序的通用性和安全性得到保证。Enhydra符合很多的工业标准如Servlets, JSP, Java, XML, HTML, JDBC等等,同时Enhydra提供了丰富的开发工具, Application Wizard命令行工具,帮你创建基本的Enhydra应用程序框架。XMLC用来产生一个JAVA对象来反映出XML文件的结构,使用该对象并使用DOM接口在运行时实现程序对XML文件内容的访问和更新。DODS是建立你的数据模型的一种工具。数据模型中的数据对象和数据库中的表有一一对应的关系。基于以上的原因我们能轻松的使用Enhydra开发出business-to-business, business-to-consumer, e-commerce等多种多样的可靠而且可扩展的应用程序,以满足Internet和电子商务发展的需要。

Enhydra在Linux下的安装

  首先到http://enhydra.enhydra.org/software/downloads/index.html下载最新Enhydra的版本;

一、安装JDK

  解压:tar zxvf jdk-1_2_2-linux-i386.tar.gz

mv jdk-1_2_2 /usr/local/jdk1.2.2


  把”export JAVA_HOME=/usr/local/jdk1.2.2”加入环境变量文件中,一般是$HOME/.bash_profile

二、安装Enhydra

  解压下载的Enhydra包


tar zxvf enhydra3.1.tar.gz
mv enhydra3.1 /usr/local/



  这样就把enhydra安装在/usr/local/enhydra3.1目录下

三、enhydra Multiserver Admin的启动

  进入enhydra3目录, 如果enhydra安装在/usr/local下

cd /usr/local/enhydra3.1


  如果enhydra安装在/enhydra/local下

cd /enhydra/local/enhydra3.1


  然后输入 ./bin/multiserver

  如果已经设置了path环境变量

  直接在命令提示符下输入multiserver并回车

  这样就会在窗口输出一些信息,主要是显示监听的几个端口信息


http://localhost:8001/ - The Multiserver Admin Console
http://localhost:8002/ - The Welcome Application
http://localhost:8003/ - The Javadoc for Enhydra
http://localhost:8004/ - Enhydra里自带的sample



  一些jsp和servlet文件和tomcat里的sample差不多, 在这里可以测试一下jsp和servlet看看能否运行, 如果不能运行JSP和servlet, 检查一下path和classpath)

  在IE或NETSCAPE里运行http://localhost:8001/

  提示输入username和password


username admin
password enhydra



  用户名和密码可以在multiserverAdmin.conf里修改

四、建立我们自己的应用目录

  首先建立一个目录(随意建到哪里)

  例如:建立一个test目录

  在enhydra$提示符下输入命令: mkdir test

  然后回车 列出目录ls ?l


mkdir test
ls -l
total 12
-rw-r--r-- 1 500 everyone 937 Apr 14 2000 README
drwxr-xr-x 2 500 everyone 0 Mar 30 08:59 apps
drwxr-xr-x 2 500 everyone 0 Mar 30 08:58 bin
-r-xr-xr-x 1 500 everyone 4090 Apr 14 2000 configure
drwxr-xr-x 4 500 everyone 0 Mar 30 08:59 director
drwxr-xr-x 6 500 everyone 0 Mar 30 08:58 dist
drwxr-xr-x 7 500 everyone 0 Mar 30 08:58 doc
drwxr-xr-x 7 500 everyone 0 Mar 30 08:59 dods
drwxr-xr-x 3 500 everyone 0 Mar 30 08:59 examples
drwxr-xr-x 2 500 everyone 0 Mar 30 08:59 filters
drwxr-xr-x 2 500 everyone 0 Mar 30 08:58 lib
drwxr-xr-x 2 500 everyone 0 Mar 30 08:59 logs
-rw-r--r-- 1 500 everyone 16569 Mar 30 08:59 multiserver.conf
drwxr-xr-x 3 500 everyone 0 Mar 30 09:52 test
drwxr-xr-x 3 500 everyone 0 Mar 30 08:58 webapps
drwxr-xr-x 3 500 everyone 0 Mar 30 09:04 work
drwxr-xr-x 3 500 everyone 0 Mar 30 08:59 xml
cd test
appwizard test
Creating new tree for Enhydra application test in . est ...
Done.



  这样建立了个应用程序的目录test

  是application root directory(等会要用到)


cd test
ls -l
total 3
-rw-r--r-- 1 500 everyone 619 Mar 30 10:41 Makefile
-rw-r--r-- 1 500 everyone 595 Mar 30 10:41 README
-rw-r--r-- 1 500 everyone 880 Mar 30 10:41 config.mk
drwxr-xr-x 5 500 everyone 0 Mar 30 10:41 test
cd test
ls
Makefile data start
Test.java multiserver.conf.in test.conf
business presentation
建立application, 在命令行输入make
make



  运行后就回出现下列信息


Build Started Fri Mar 30 10:51:00 2001
+ /usr/local/enhydra3.0.1/bin/xmlc -d ../../
classes -class test.presentation.WelcomeHTML -generate
both Welcome.html
Adding to JAR classes: Enhydra.gif
……………………………



  如果这里出现错误,检查一下classpath是否设置正确你的classpath里需要enhydra.jar这个package 现在让我们看看application root directory, 也就是前面说的test目录


cd ..
ls
Makefile README classes config.mk output test



  对比一下, 可以看的出来多出两个目录, make在application root directory方向上建了两个子目录classes和output

  Output目录:

  用来放运行你的应用程序所需要的几个配置文件


---multiserver.conf Multiserver配置文件
---AppName.conf(这里是test.conf)application配置文件
---start start script



  运行一下我们刚建立的application


cd output
ls
multiserver.conf start test.conf

./start
***
*** Connect to http://false:9000/
***
2001.03.30 11:11:17: Multiserver,INFO: Starting Enhydra Multiserver
2001.03.30 11:11:19: Multiserver,INFO: HTTP listening on port: 9000
2001.03.30 11:11:19: Multiserver,INFO: Starting servlet/application test
2001.03.30 11:11:19: Multiserver,INFO: Application test has url prefix "".
2001.03.30 11:11:19: test,INFO: test: init
Enhydra Java Application Server
Copyright 1997-2000 Lutris Technologies, Inc.
All rights reserved.
2001.03.30 11:11:20: .Test,INFO: Enhydra Java Application Server
2001.03.30 11:11:20: .Test,INFO: Copyright 1997-2000 Lutris Technologies, Inc.
2001.03.30 11:11:20: .Test,INFO: All rights reserved.



  默认情况下监听9000端口。

  现在我们可以应用这个APPLICATION了,

  在NETSCAPE里输入http://localhost:9000/

  这是个动态产生的presentation object (po) 文件.

五、建立WEB应用程序目录

  Enhydra 作为JAVA APPICATION SERVER,怎样让我们刚刚建好的application目录运行编写的jsp和servlet的呢???

  写两个例子测试一下Hello.jsp和HelloWorld.java


/**********Hello.jsp(jsp文件)**********************

hellworld

<%
out.println("HelloWorld!!!");
%>


************END***********************/
/*************************HelloWorld.java(servlet文件)*************
*****************************COPY *****************************
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("");
out.println("");
out.println("");
out.println("Hello World!");
out.println("");
out.println("");
out.println("

Hello World!

");
out.println("");
out.println("");
}
}

************END*************/



  使用我们刚才在第四步建立的test application root目录

  首先我在test/test下建立了一个webapps目录

  目录结构:


webapps
|_____jsp
|_____servlet
|_____web_info
|______classes
|______jsp



  可以根据这个结构自己建目录,现在把前面的hello.jsp放到jsp目录下。 HelloWord.java放到servlet目录下, 然后用javac 编译这个.java为.class文件

  到web-info下的classes目录里, 现在让Multiserver Admin Console来管理应用程序。

  把/enhydra3.1/apps/multiserverAdmin.conf这个文件copy到/usr/local/test/test/output.

  操作:


cp /usr/local/enhydra3.0.1/apps/multiserverAdmin.conf
/usr/local/test/test/output



  用vi编辑工具打开/usr/local/enhydra3.1/test/test/output/ multiserver.conf

  找到这几行


Application.MultiserverAdmin.ConfFile = multiserverAdmin.conf
Application.MultiserverAdmin.Description =
"The Enhydra Multiserver Management Console."
Application.MultiserverAdmin.Running = yes
Connection.p9001.Type = http
Connection.p9001.Port = 9001
Channel.p9001.aChan.Servlet = MultiserverAdmin
Channel.p9001.aChan.Url = "/"
Channel.p9001.aChan.Enabled = yes



  把前面的#号去掉,保存.

  output目录下

  在命令行输入./start

  将监听9000和9001两个端口。


http://localhost:9001-------The Multiserver Admin Console
http://localhost:9000-------应用



  在浏览器里打开http://localhost:9001


username->admin
password->enhydra



  启动了Multiserver's graphical administration program

  点击ADD按钮, 在弹出的小窗口里面

  Application/Servlet/War: 选择War(Web Application Doc Root)

  Name: 取个名字吧, 我的这个就叫myapp吧

  Doc Root: /usr/local/enhydra3.1/test/test/webapps/ (这个填写web 应用程序的方向, 一定要填对)


/*******************以下可选**************************/
Session timeout: (optional) 30 (填写session超时时间)
War expanded:(optional)
War validated: (optional)
Invoker Enabled:(optional) (如果想让Servlet工作, 选中这个选项)
WorkDir Persistent:(optional)
Description:(optional)



  点击OK

  这样就会在主窗口的左面Applications列表里多出了一个myapp

  点击myapp,在窗口的右面部分出现状态信息。

  有两个选项, 点击CONNECTIONS, 然后点create

  填入端口号9002 (注意端口不要有冲突)

  OK后。用鼠标点击在主窗口的左面的start按钮。

  必须让9002 running, 否则9002不能工作

  然后保存 save state。 下次就可以直接使用了

  注意:这里很容易出问题的。最好把multiserver.conf的内容研究明白,最容易出现的问题就是端口不能绑定(bind)。

  在浏览器中输入

http://localhost:9002/jsp/hello.jsp


  和

http://localhost:9002/servlet/HelloWorld


  如果一切正常就可以看到我们熟悉的Hello World字样了,这时你的enhydra就算安装成功了。

Enhydra在Windows下的安装

  首先到http://enhydra.enhydra.org/software/downloads/index.html下载最新Enhydra的版本;

一、安装JDK

  1、双击jdk1_2_2-00x-win.exe文件进行安装,使用缺省配置进行安装,JDK的缺省安装目录为 C:jdk1.2.2,JRE的缺省安装目录为C:Program FilesJavaSoftJRE1.2;

  2、 在控制面板里的SYSTEM中设置环境变量path和classpath


path= c:jdk1.2.2in;c:jdk1.2.2
classpath=c:jdk1.2.2lib ools.jar; C:jdk1.2.2libdt.jar;.



  如果是win98, 在autoexec.bat文件里设置path和classpath.

二、安装Enhydra

  安装之前保证windows安装在C盘 ,Enhydra在WIN 2K下的安装和其他应用程序的安装没什么不同, 按步骤安装即可需要注意的是安装时需要确定JDK的安装目录.其他默认就可以了。 安装完成后会在c盘生成三个目录 :


bin,
usr
enhydra.



三、设置环境变量

  确定enhydra安装目录,应该在usrlocal或enhydralocal下path里加上你的安装目录localenhydra3.0.1in; 因为在BASH shell里经常使用这个目录下的执行文件

  classpath里加上你的安装目录localenhydra3.0.1libenhydra.jar;

  Enhydra在WINDOWS下使用了UNIX bash shell 环境和command emulator, 操作和UNIX/linux相同。点击桌面的Enhydra Shell图标,打开一个SHELL,出现欢迎信息和提示符.

  如下所示:


* c:enhydra>echo off
* -
* Welcome to The Enhydra Development Environment.
* Many thanks to the Cygnus group for the GNU tools...
* -
* Enhydra$
*------------------------------------------------------*/
在Enhydra$命令行敲入命令:ls -l
/*----------------------操作如下-------------------
* Enhydra$ ls -l
* total 7
* -rwxr-xr-x 1 0 everyone 177 Feb 17 1999 ENHYDRA.BAT
* -rw-r--r-- 1 0 everyone 2238 Jan 13 1999 Enhydra.ico
* -rw-r--r-- 1 0 everyone 967 Jan 14 1999 EnhydraShell_95_98.pif
* -rw-r--r-- 1 0 everyone 376 Jan 14 1999 EnhydraShell_NT.lnk
* -rw-r--r-- 1 0 everyone 186 Jan 13 1999 Install-License.txt
* -rw-r--r-- 1 0 everyone 524 Jan 14 1999 Install-Readme.txt
* drwxr-xr-x 4 0 everyone 0 Feb 24 2001 local
* Enhydra$



  继续输入命令:


* Enhydra$ cd local
* Enhydra$ ls -l
* total 384
* -rw-r--r-- 1 0 everyone 785086 Feb 24 2001 Uninst.isu
* drwxr-xr-x 8 0 everyone 0 Feb 24 2001 enhydra-demos3.0.1
* drwxr-xr-x 14 0 everyone 0 Feb 24 2001 enhydra3.0.1
* Enhydra$



  退出虚拟shell按ctrl+c。

  Enhydra在windows下的使用和在Linux下的基本相同,只要把一些命令这个虚拟的unix环境下执行就可以了,在这里我们就不多作介绍了。

Copyright © 2002-2005 JSPCN.net. All rights reserved.
JSP中文网    备案序号:蜀ICP备05001583号
成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号