OC4J 11 概述
Java EE 5.0 支持
新特性
已知问题
Oracle Containers for Java EE 或 OC4J 是 Oracle 应用服务器的核心 Java 企业版运行时组件。OC4J 11 服务器提供了 Java EE 5.0 规范规定的所有容器、API 和服务。
OC4J 全部用 Java 编写,在标准 Java 开发工具包的 Java 虚拟机 (JVM) 上执行。当前的 OC4J 版本需要 JDK 5.0 版。注意,您必须安装 JDK,它不随 OC4J 提供。
注意,该 OC4J 技术预览版不受 Oracle 官方支持。
请参阅产品随附的自述文件,以获得有关安装、启动和使用 OC4J 11 的说明。
OC4J 支持下表中列出的标准 Java EE 5.0 规范。
JavaServer Page (JSP)
2.1
Servlet
2.5
JavaServer Faces (JSF)
1.2
Enterprise JavaBeans (EJB)
3.0
Java 持久性 API (JPA)
1.0
Java EE 管理
1.1
Java EE 应用程序部署
JMX 远程访问 API
JSR-160
Java 事务 API (JTA)
Java 密码扩展 (JCE)
1.2.2
Java 事务服务
Java 消息服务 (JMS)
Java 命名和目录接口 (JNDI)
Java Mail
1.3.1
Java Activation Framework
1.0.2
Java 数据库连接 (JDBC)
Java 验证与授权服务 (JAAS)
Java EE 连接器体系结构
1.5
Java API for XML Web Services (JAX-WS)
2.0
企业 Web 服务
Web 服务元数据
Java API for XML-Based RPC (JAX-RPC)
SOAP with Attachments API for Java (SAAJ)
1.3
Java API for XML Processing (JAXP)
Java API for XML Registries (JAXR)
1.0.5
Java API for XML Binding
Java 通用批注
Streaming API for XML (StAX)
以下主题概述了 Oracle Containers for Java EE 中的新特性以及对早期版本的功能更改。
在 OC4J 11g 生产版中,所有 Oracle 专用的部署描述符(如 orion-application.xml)将以 oracle- 前缀重命名。文件名中包含 oracle-*.xml 的文件在当前版本中受支持。
OC4J 根据 Java EE 标准为 Web 服务提供完全支持。这包括对 Java EE 5 中增强的 Web 服务编程模型 Java API for XML Web Services (JAX-WS) 的支持。其他支持还包括:
OC4J 11g 提供了部署、运行和管理 Java EE 5.0 Web 应用程序所需的基础架构,包括对 JavaServer Faces 1.2 和 AJAX 的内置支持。此外,可以与 AJAX 结合使用的一个新的异步 servlet 功能允许 servlet 在等待其他进程结束时暂时停止执行并释放其线程。
OC4J 提供了对企业 JavaBeans 3.0 规范的完全支持,包括支持 EJB 批注和相关性注入。
Oracle TopLink 是一个高级的对象持久性框架,可以与众多的 Java EE 和 Java 应用程序体系结构结合使用。TopLink 继续在 OC4J 中提供 Java 持久性 API (JPA) 实现。
通用连接池为数据库连接池提供了增强的通用基础架构。它可以在 OC4J 上下文中使用,也可以供非 Java EE 应用程序连接到 Oracle 和非 Oracle 数据库以及其他资源(如 JCA 和 LDAP 连接)。
新的 OC4J 提供了 JMS 性能优化,如存储和转发基础架构强化。OC4J-JMS 和 AQ-JMS JMS 提供程序的配置也得到了简化。
OC4J 继续为日益流行的 Spring Framework 上构建的应用程序提供支持。该版本中的增强包括:
该版本中的已知问题如下。注意,这是技术预览版,这意味着它不代表产品质量。
该版本没有提供 Application Server Control 管理控制台。可以使用 admin_client.jar 工具执行管理任务,如应用程序部署。
如果使用默认 JDK 设置,可能会遇到 PermGen 问题,这取决于在容器上运行的应用程序的大小。这些错误包含以下短语:"... nested exception is java.lang.OutOfMemoryError:PermGen spaceCaused by:java.lang.OutOfMemoryError:PermGen space"。
解决方案是在 OC4J 启动时增加 PermGen 空间。为此,您可以在 oc4j.jar 命令行中设置一个系统属性:
java -jar -XX:MaxPermSize=256M oc4j.jar
或者使用 oc4j.cmd 启动命令,如下所示:
SET JAVA_HOME=<java_home> SET JVM_ARGS=-XXMaxPerSize=256M SET ORACLE_HOME=<oc4j_home> oc4j.cmd -start
在调用 Web 服务时,控制台会打印与策略配置相关的信息,如“No policy to enforce”。这些消息仅供参考。
解决方案是使用标准 Java 日志记录属性文件更改客户端的日志级别,并将其设为 WARNING (.level= WARNING),然后使用 java.util.logging.config.file 将您的客户端指向它。
该 OC4J 版本包含的是新的高性能 JMS 提供程序的早期试用版。新的 JMS 提供程序通过编辑 J2EE_HOME\config\jms.xml 文件进行配置。
在启动 OC4J 时,使用以下系统属性启用新的 JMS 提供程序,这实际上将覆盖默认的 OC4J-JMS 提供程序:
-Doc4j.jms.implementation=oracle.j2ee.jms
-Doc4j.jms.implementation=oc4j.j2ee.jms 系统属性仍然受支持,但不推荐使用。