使用 MQ 的 Java 存储过程

标签 java oracle jms ibm-mq procedure

我需要在 Oracle 中创建一个 Java 存储过程。我使用 IBM 的示例类从 Java EE 环境之外的简单类创建 MQ 消息。我已经单独测试了该类(class),它正在运行。

我的 Oracle 版本是 11i。

当我尝试将简单应用程序中使用的 jar 添加到 Oralce 以及我的简单类时,我收到有关未找到类的错误,即使相同的 jars 与测试用例一起工作也是如此。我坚持了一个多星期,迫切希望有人能够帮助我解决这个问题。

我收到的错误类型是这样的,来自客户端上带有 loadjava 实用程序的 -v 标志

在第 326/327 行,您会看到:

creating : class com/ibm/mq/jms/admin/AP loading : class com/ibm/mq/jms/admin/AP

然后最后从6224行开始到结束,说明上面的类无法解析:

com/ibm/mq/jms/admin/APRCXI: ORA-29534: referenced object xxxx.com/ibm/mq/jms/admin/AP could not be resolved com/ibm/mq/jms/admin/APSDX: ORA-29534: referenced object xxxx.com/ibm/mq/jms/admin/AP could not be resolved exiting : errors resolving class com/ibm/mq/jms/admin/AP

我使用的命令是:

c:\Oracle\product\11.2.0\client_1\bin\loadjava.bat -f -jarsasdbobjects -prependjarnames -stoponerror -u xxxx/yyyy@SID -v -resolve lib\jms.jar lib\com.ibm.mqjms.jar lib\com.ibm.mq.jmqi.jar lib\dhbcore.jar lib\fscontext.jar src\com\test\javasp\mq\JmsProducer.java

我还尝试使用 -genmissing 选项和一些额外的 jar(我找到的列表 here),但对于不同的类仍然会出现类似的错误。

我面临的另一个问题是,如果我遇到错误并尝试使用来自 Oracle 的 dropjava 命令,它也不起作用。

我也从this看到链接,这个人成功了,但不幸的是,他/她没有说明他们是如何使用 loadjava 加载 jar 的。

如果我能提供任何其他信息,请告诉我。

如果有人对如何让 Java 存储过程使用 IBM MQ 和 Oracle 11i 有任何想法,我将非常感谢您的帮助。

最佳答案

this中找到了详细的答案博客条目。我试过了,它对我有用。

关于使用 MQ 的 Java 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11317761/

相关文章:

java - 在 Java 中使用 System.console() 时,为什么输出管道会损坏?

java - 为什么使用 Thread.currentThread().isInterrupted() 而不是 isInterrupted()?

java - 禁用监听器后无法使用 JDBC 连接到 Oracle DB

sql - ORA-01735 : invalid ALTER TABLE option - Toad

jms - 我可以将 Active 嵌入到我的 Tomcat 中吗?

java - SNMP4J 的 SNMP 消息 : Specify Read Community and Write Community?

java - 绘制分层形状

sql-server - 开发人员从 SQL Server 迁移到 Oracle

java - spring 与 activemq 集成

spring - 持久订阅消费者不能同时消费超过 1 条消息吗?