我需要在 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/