成都心情

  BlogJava :: 首页 ::  :: 联系 :: 聚合  :: 管理 ::
  98 随笔 :: 2 文章 :: 501 评论 :: 1 Trackbacks

   当今J2EE服务器市场可谓百花齐放啊,本文主要介绍OC4JOracle Application Server Containers for J2EE)的特性和配置方式,它是Oracle公司提供的作为J2EEContainer,由纯Java语言编写。要强调的是根据本人亲身体会,OC4J绝对是一个十分可靠的服务器,在企业级应用环境中毫无问题!

   

    一、OC4J的最新版本是什么?

        OC4J 10g (9.0.4)

    二、OC4J是通过了J2EE兼容性认证的产品吗?

        是的,OracleSun获得了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应用服务器产品家族的成员,包含J2EEWeb服务组件。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.htmlOC4J独立版用户指南在OC4J大类中提供。Readme.txt文件在OC4J独立版的根目录,提供了一些关于安装和使用的基本信息。

    八、在哪里能找到关于OC4J性能的列表?

        得到OC4J技术信息最好的地方是在OTN上的OC4J技术专区http://otn.oracle.com/tech/java/oc4jOC4J的特性总览在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进程窗口中按下^cCtrl+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应用服务器指南,可获得更多信息。

 

  十五、OC4JHTTP默认端口是什么?

        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驱动程序,可以用来连接IBMSybase,和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.jarManifest.mf文件实现。这种机制可让Oracle XML解析器适用于所有普通的发布和打包的情况。但不能修改oc4j.jarManifest.mf文件。

需要注意的是,通过修改OC4J的配置文件来运行其他XML解析器或JDBC库是不被支持的。我们有的客户已经成功地替换了系统级XML解析器以及JDBC驱动程序,并重新装载在这个产品上。但我们不支持随意移动已测试和认证的类库,这将会导致意想不到的系统动作,和系统错误。

如果你一定要坚持使用像xerces这样的第三方XML解析器,那么当OC4J启动时,xerces.jar文件必须被装载于OC4J系统级类路径中。可以使用JREXbootclasspath标记来达到这一目的:

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,并作为应用程序的数据源配置文件来使用。


请注意!引用、转贴本文应注明原译者:Rosen Jiang 以及出处:http://www.blogjava.net/rosen

posted on 2005-08-12 10:37 Rosen 阅读(2517) 评论(0)  编辑  收藏 所属分类: Java EE 表现层及容器

只有注册用户登录后才能发表评论。


网站导航: