二十二、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,并作为应用程序的数据源配置文件来使用。
本文地址:http://com.8s8s.com/it/it16420.htm