转自:http://www.blogjava.net/rosen/archive/2005/08/12/9894.html
当今
J2EE
服务器市场可谓百花齐放啊,本文主要介绍
OC4J
(
Oracle Application Server Containers for J2EE
)的特性和配置方式,它是
Oracle
公司提供的作为
J2EE
的
Container
,由纯
Java
语言编写。要强调的是根据本人亲身体会,
OC4J
绝对是一个十分可靠的服务器,在企业级应用环境中毫无问题!
一、
OC4J
的最新版本是什么?
是
OC4J 10g (9.0.4)
。
二、
OC4J
是通过了
J2EE
兼容性认证的产品吗?
是的,
Oracle
从
Sun
获得了
J2EE
技术的官方许可(
http://java.sun.com/j2ee/licensees.html
),
OC4J
也通过了
J2EE
兼容性认证的产品,可参考
J2EE
兼容性一览表(
http://java.sun.com/j2ee/compatibility.html
),也可以从
Sun
的网站获得详情。
三、不同的
OC4J
版本,与
J2EE
版本是怎样对应的?
产品版本
兼容的
J2EE
版本
OC4J 9.0.4 J2EE 1.3
OC4J 9.0.3 J2EE 1.3
OC4J 9.0.2 J2EE 1.2
OC4J 1.0.2.x J2EE 1.2
四、
J2SE
的哪些版本可以与
OC4J
搭配?
Oracle
产品的所有官方认证信息,可以到
Oracle
技术支持网站
http://metalink.oracle.com
获得。
产品版本
J2SE
版本
OC4J 9.0.4 J2SE 1.4.x, J2SE 1.3.x
OC4J 9.0.3 J2SE 1.4.x, J2SE 1.3.x
OC4J 9.0.2 J2SE 1.3.x, J2SE 1.2.x
OC4J 1.0.2.x J2SE 1.3.1, J2SE 1.2.x
五、什么是
OC4J
独立版?
OC4J
独立版是
Oracle
应用服务器产品家族的成员,包含
J2EE
和
Web
服务组件。
OC4J
独立版比完整的
Oracle
应用服务器产品稍小,下载以后只有一个
ZIP
文件。它作为单
JAVA
进程执行。
OC4J
独立版兼容于
J2EE1.3
,可用于开发和运行小规模产品。
OC4J
独立版提供了内嵌的
HTTP/S
监听器,允许客户端运行发布后的应用程序。
OC4J
独立版的应用程序发布与服务器的配置,需要手工编辑几个
XML
文件。
大规模的企业级发布,
Oracle
应用服务器产品或许更适合于它,来适应广泛的企业级需求(而不是
OC4J
独立版),这样可以更好的进行程序控制和性能管理,以及配置、管理控制台。
六、那么
Oracle
独立版和在
Oracle
应用服务器之内的
OC4J
有什么重大不同之处?
在代码方面,构造
OC4J
独立版的单元集合与
Oracle
应用服务器之内的
OC4J
几乎一样。如果你在
OC4J
独立版中开发并发布一个应用程序,那么这个程序也可以在
Oracle
应用服务器上很好的运行。
这两种环境的最主要的不同点是配置上的。
Oracle
应用服务器的
OC4J
被配置在运行于
Oracle
应用服务器环境中。意味着
Oracle
应用服务器类似于一个入口,这个入口是附加的特征,通过附加的类库提供支持。它在不同的端口之间监听连接(
Oracle
应用服务器动态平分),日志输出到不同的文件和目录,它的默认
Web
监听器使用
mod_oc4j
,能和
AJP
协议交流,胜于
HTTP
协议直接浏览客户端。
另外一个不同在于控制和管理
OC4J
的方式。在
Oracle
应用服务器环境下,
OC4J
被配置为完整的应用程序服务器技术的一部分,使用
Oracle
企业级应用程序管理器控制,或者用等价的命令行工具,
dcmctl
。直接对
XML
配置文件操作并不是首选方案,尽管也能完成配置。应用程序发布也使用
Oracle
企业级应用程序管理器操作,或用命令行工具。
Oracle
应用服务器的
OC4J
启动和停止也通过以上同样的控制台操作,并能作为
Oracle
应用服务器实例的一部分,可配置成自动管理。
与之相反,对
OC4J
独立版的操作、发布以及管理工作很大程度上依赖手工编辑
XML
文件。命令行工具不适用于
OC4J
独立版。
admin.jar
,能够利用一组命令把多个任务执行完,但不能将这些命令适用于
Oracle
应用服务器环境。
关于更多的
Oracle
应用服务器
OC4J
配置信息以及命令行工具
dcmctl
方面的操作,请参考
OC4J
独立版用户指南。
关于更多的
OC4J
独立版配置信息以及命令行工具
admin.jar
方面的操作,请参考
OC4J
独立版用户指南。
七、在哪里能看到
OC4J
的文档?
所有
Oracle
产品的相关文档都能在
OTN
网站上找到
http://otn.oracle.com/documentation/content.html
。更加详细的
OC4J
文档在
http://otn.oracle.com/documentation/appserver10g.html
。
OC4J
独立版用户指南在
OC4J
大类中提供。
Readme.txt
文件在
OC4J
独立版的根目录,提供了一些关于安装和使用的基本信息。
八、在哪里能找到关于
OC4J
性能的列表?
得到
OC4J
技术信息最好的地方是在
OTN
上的
OC4J
技术专区
http://otn.oracle.com/tech/java/oc4j
。
OC4J
的特性总览在
http://otn.oracle.com/tech/java/oc4j/904/collateral/OC4J-FOV-904.html
,列举了
OC4J 10g (9.0.4)
的所有特点。
九、在哪里可以得到更多关于
OC4J
的信息?
呵呵,说来说去还是
OTN
网站
http://otn.oracle.com/tech/java/oc4j
。
十、安装
Oracle
独立版需要怎样做?
安装
Oracle
独立版,需要解压缩
oc4j_extended.zip
文件。
会创建这样的目录结构:
<install-dir>
/bin
/j2ee
/javacache
/javavm
/jdbc
/jdk
/jlib
/lib
/rdbms
/soap
/sqlj
/webservices
<install-dir>
就是你解压缩
oc4j_extended.zip
后所产生的目录。
完整安装
OC4J
,需要切换到
<install-dir>j2ee/home
目录,用以下命令:
> cd <install-dir>/j2ee/home
> java -jar oc4j.jar -install
<install-dir>/j2ee/home
目录作为
<J2EE_HOME>
提交。
安装会提示你输入和验证管理员密码,以便使用控制台命令行工具,管理员用户名默认为“
admin
”。
一系列的指令包含在
Readme.txt
文件中,它跟随
OC4J
独立版一起发布。
十一、怎样启动
OC4J
独立版?
启动
OC4J
服务器,首先要用
DOS
命令切换到
J2EE_HOME
目录,然后:
a
)根据
j2ee/home/config
目录下的默认配置文件启动
OC4J
:
> cd <J2EE_HOME>
> java -jar oc4j.jar
b
)根据自定义的
server.xml
文件启动
OC4J
(在
/mypath
中):
> cd <J2EE_HOME>
> java -jar oc4j.jar -config /mypath/server.xml
当服务器启动以后,将会出现初始化信息,包括版本号等信息,例如:
Oracle Application Server Containers for J2EE 10g (9.0.4.0.0) initialized
十二、怎样停止
OC4J
独立版?
在
OC4J
进程窗口中按下
^c
(
Ctrl+c
)就可以停止它了,或者使用在
admin.jar
命令行工具中的停止命令,或者使用操作系统的进程终止命令(例如
UNIX/Linux
的“
kill
”)。
十三、怎样使用
admin.jar
命令行工具停止
OC4J
呢?
用
admin.jar
停止
OC4J
,需要按如下的方法:
>cd <J2EE_HOME>
> java -jar admin.jar ormi://<oc4j_host>:<oc4j_ormi_port> <admin>
<admin-password> -shutdown
这个命令是一个完美的关闭
OC4J
的方法。如果
OC4J
还没有被关闭,你就需要用
-force
参数强行关闭了:
> java -jar admin.jar ormi://<oc4j_host>:<oc4j_ormi_port> <admin>
<admin-password> -shutdown force
更多信息请参考
OC4J
独立版用户手册。
十四、可以在
Windows 2000/XP
中把
OC4J
作为一个服务运行吗?
目前不提供在
Windows
平台中把
OC4J
作为直接的服务这一机制。如果你定要
24x7
小时的运行策略,我们推荐你应该选用
Oracle
应用服务器版。作为安装并运行为
Windows
平台服务的
Oracle
应用服务器,它拥有自动进程管理的能力。倘若要让
Windows
平台的
OC4J
有自动启动
/
重启的机制,
Oracle
应用服务器进程管理器能被配置成为运行
OC4J
的实例。
参考
Oracle
应用服务器指南,可获得更多信息。
十五、
OC4J
的
HTTP
默认端口是什么?
OC4J
独立版的默认
HTTP
端口是
8888
。指定的配置文件是
<J2EE_HOME>/config/http-web-site.xml
。如果你已经安装了
Oracle
应用服务器,而现在想用
OC4J
独立版来代替,你必须通过
Oracle HTTP
服务器访问发布在
OC4J
上面的
Web
应用程序。
Oracle HTTP
服务器的默认端口是
7777
。
十六、
OC4J
独立版有图形用户界面的控制台吗?
这个版本没有。所有对
OC4J
独立版的配置和发布的操作只能通过手工修改其配置文件。将来我们会提供一个应用最新
JMX
规范,基于
Web
的控制台,来执行配置和发布任务。
十七、我可以把
HTTPS
用于
OC4J HTTP
监听器吗?
可以。
OC4J HTTP
监听器支持
HTTPS
,可被配置来顺应这种潮流。
参考相关
OC4J
用户指南(独立版或
Oracle
应用服务器版)来获得更多信息。
十八、怎样用
OC4J HTTP
监听器来改变
HTTP
端口?
OC4J HTTP
监听器使用的端口被定义在配置文件:
<J2EE_HOME>/config/http-web-site.xml
文件的
web-site
标签
port
属性中。
<web-site port="8888" display-name="Oracle Application Server Containers for J2EE HTTP Web Site">
你可以把
port="8888"
修改为不同的端口号。
十九、用
OC4J
怎样连接数据库?
OC4J
使用数据源来定义连接数据库的操作。当
OC4J
启动以后,它能建立基于配置文件的
DataSource
对象。这些
DataSource
对象担当连接工厂(连接池),允许应用程序获得一个连接,而不需要获得对这个数据库的物理上的详细连接信息。
数据源在
J2EE_HOME/config/data-sources.xml
中被定义为默认值。使用
OC4J
独立版时,你应该手工添加一个你需要的数据库连接声明。当使用
Oracle
应用服务器版时,你应该用
Oracle
企业管理控制台来定义数据源。
一个数据源的定义包含这个数据源所要连接数据库的所有信息。典型的例子如下:
<data-source
class="com.evermind.sql.DriverManagerDataSource"
name="OracleDS"
location="jdbc/OracleCoreDS"
xa-location="jdbc/xa/OracleXADS"
ejb-location="jdbc/OracleDS"
connection-driver="oracle.jdbc.driver.OracleDriver"
username="scott"
password="tiger"
url="jdbc:oracle:thin:@localhost:1521:oracle"
inactivity-timeout="120"
stmt-cache-size="100"
/>
参考
OC4J
文档的
J2EE
服务指南来获得更多信息。
二十、如果我不想把数据库的密码这么直白的表现出来,该这么办?
OC4J 9.0.4
允许你把密码放在不同的配置文件中,以便通过一种安全的方式来间接管理。允许你指定一特定安全包,
OC4J
会自己解析出密码来。这样能使密码继续留在一个集中控制的区域被管理,还可选择本地
XML
用户存储或使用
Oracle
互联网目录(
Oracle Internet Directory
)。
参考
OC4J
文档的
J2EE
服务指南来获得更多信息。
二十一、我可以让
OC4J
连接非
Oracle
数据库吗?
可以,实际上
Oracle
支持一整套
JDBC
驱动程序,可以用来连接
IBM
,
Sybase
,和
Microsoft
的数据库产品。利用
JDBC
驱动程序,来弥补那些
Oracle
支持库所不支持的产品。与非
Oracle
数据库产品建立一个连接,你应该为
OC4J
配置数据源,来定义一系列必须的
JDBC
驱动程序信息,例如
JDBC URL
、连接名,等。
参考
OC4J
文档的
J2EE
服务指南的数据源章节获得更多信息。
二十二、
WAR
文件能发布为
Web
应用程序吗?
当然可以,如果你希望只以
Web
模式发布,那么可以利用默认的
OC4J
配置。这里有两步:
首先,告诉容器
WAR
文件被发布到哪里。用编辑器打开
<J2EE_HOME>/config/application.xml
文件,增加
<web-module>
标签,定义
WAR
文件属性。
<web-module id="HRWebModule" path="<PATH-TO-WAR-FILE>"/>
其次,告诉
OC4J HTTP
服务器关于如何通过
URL
来访问部署的
WAR
文件。用编辑器打开
<J2EE_HOME>/config/http-web-site.xml
文件。添加
<web-app>
标签,并为你的
Web
程序定义属性。请注意,
application
属性必须定义为“
default
”,是因为发布的是默认应用程序。
name
属性应该匹配你的
Web
程序所定义的
ID
属性。
<web-app application="default" name="HRWebModule" root="/hrweb" />
WAR
文件被
OC4J
发布,并可通过浏览器来访问
/hrweb
目录。
如果你使用的是
Oracle
应用程序服务器来代替
OC4J
独立版,那么应该通过管理控制台来发布
WAR
文件。
二十三、哪里可以放置我的共享类库,以便它们可以访问我发布的应用程序?
OC4J
配置了一个默认的共享目录,目录就是
<J2EE_HOME>/applib
。任何类库都可以放在这个目录,发布在
OC4J
上的应用程序就可以访问了。
共享目录在
<J2EE_HOME>/config/application.xml
文件的
<library>
标签中定义:
<orion-application autocreate-tables="true" default-data-source="jdbc/OracleDS">
<web-module id="defaultWebApp" path="../../home/default-web-app"/>
<web-module id="dms0" path="../../home/applications/dms0.war"/>
<web-module id="dms" path="../../home/applications/dms.war"/>
<persistence path="../persistence"/>
<!-- Path to the libraries that are installed on this server.
These will accesible for the servlets, EJBs etc -->
<library path="../applib"/>
...
</orion-application>
更多关于装载类和打包的问题,可参考
OTN
的文档
http://otn.oracle.com/tech/java/oc4j/pdf/ClassLoadingInOC4J_WP.pdf
。
二十四、怎样在
OC4J
中使用像
xerces
这种第三方的
XML
解析器?
OC4J
已经自带了
Oracle XML
解析器。
Oracle XML
解析器与
JAXP 1.1
标准完全兼容,可服务于需要
JAXP
功能的应用程序场合。这种方式不需要下载、安装、配置其他的
XML
解析器。
Oracle XML
解析器(
xmlparserv2.jar
)默认装载于
OC4J
的系统级库,通过包含
oc4j.jar
的
Manifest.mf
文件实现。这种机制可让
Oracle XML
解析器适用于所有普通的发布和打包的情况。但不能修改
oc4j.jar
的
Manifest.mf
文件。
需要注意的是,通过修改
OC4J
的配置文件来运行其他
XML
解析器或
JDBC
库是不被支持的。我们有的客户已经成功地替换了系统级
XML
解析器以及
JDBC
驱动程序,并重新装载在这个产品上。但我们不支持随意移动已测试和认证的类库,这将会导致意想不到的系统动作,和系统错误。
如果你一定要坚持使用像
xerces
这样的第三方
XML
解析器,那么当
OC4J
启动时,
xerces.jar
文件必须被装载于
OC4J
系统级类路径中。可以使用
JRE
的
Xbootclasspath
标记来达到这一目的:
java -Xbootclasspath/a:d:\xerces\xerces.jar -jar oc4j.jar
再一次重申,想当然的配置是不允许的。
二十五、可以和我的应用程序一起发布数据源文件吗?
可以,应该把安全文件(比如口令)和数据源文件一起打包在你的应用程序中,保存为
EAR
文件。当应用程序被发布,这些文件会被
OC4J
用于建立连接或验证用户信息。另外,当需要发布应用程序时,
Oracle JDeveloper
已经标准化了这种打包机制。
要达到这一目的(打包),你应该提供所有想要捆绑发布的文件,并放在和
application.xml
文件同一目录中。另外,还要有一个引用这些东西的
orion-application.xml
文件。
如果
data-sources.xml
文件也要包含在应用程序中的话,
data-sources.xml
应该包含一系列关于连接数据库的配置信息。
EAR
文件结构应该像这样:
<EAR-FILE>
/META-INF
application.xml
orion-application.xml
data-sources.xml
webmodule.war
ejbmodule.jar
例如,
orion-application.xml
文件包含引用本地
data-sources.xml
文件的入口:
<orion-application>
<data-sources path="./data-sources.xml"/>
</orion-application>
在发布的时候,
OC4J
引用
orion-application.xml
的内容。它会拷贝定义在
EAR
文件中的
data-sources.xml
,并作为应用程序的数据源配置文件来使用。
posted on 2006-06-24 20:12
船长 阅读(1650)
评论(0) 编辑 收藏 所属分类:
J2EE