【问题标题】:What is the role of JavaEE jar in Oracle java stored procedure in 11g when using MQ11g中Oracle java存储过程使用MQ时JavaEE jar的作用是什么
【发布时间】:2013-06-12 07:20:55
【问题描述】:
我需要编写一个 Oracle Java 存储过程来使用该存储过程将消息写入 MQ。我按照this 链接的指示进行操作,并且成功了。根据链接,需要将JavaEE api jar加载到数据库中。
但现在我对 JavaEE Jar 在 Oracle Java 存储过程中的角色有疑问。根据我的阅读,这些 jar 只包含接口,没有实现
- JavaEE jar 在 Oracle Java 存储过程中扮演什么角色?
- 如果它没有实现细节,它在运行时从哪里得到它?
- 我已经不用这些jar就可以写出简单的Java存储过程了,那么什么情况下需要用到这个jar呢?
【问题讨论】:
标签:
oracle
api
jakarta-ee
ibm-mq
java-stored-procedures
【解决方案1】:
它包含 EJB、JMS、资源管理器、JDBC (javax.sql)、事务等服务的接口。这是为了确保使用这些接口的应用程序可以安装在不同的应用服务器。 实现由应用服务器提供者决定,但客户端应用程序并不直接需要这些。
例如,要获得连接,您需要使用命名服务查找工厂。查找的结果必须cast 到一个interface(因为命名服务返回Objects)。因此,您需要处理 接口,但当然在后台有一个特定于供应商的类来实现它。
如果您从 JDBC 客户端调用 Java 存储过程,则数据库也可以被视为应用程序服务器。因此理论上,您在 Java 应用程序服务器中所做的任何事情也可以在存储过程中完成:它是 JMS,可能还有事务服务,或对其他 EJB 服务器的调用。但这不是常见的做法,我不知道有任何限制。