Oracle调用Java方法(下)复杂Jar包封装成Oracle方法以及ORA-29521错误

Posted 零零丶发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle调用Java方法(下)复杂Jar包封装成Oracle方法以及ORA-29521错误相关的知识,希望对你有一定的参考价值。

上一篇随笔中已经说了简单的Jar是如何封装的,但是我的需求是根据TIPTOP的查询条件产生XML文件并上传到FTP主机中,那么就要涉及到XML生成的方法和FTP上传的方法 所以在Eclipse写的时候引用了第三方的价包:jdbc, org.dom4j , org.apache.commons

把这几个jar包和自己的代码封装成一个jar包 , 结果在执行loadjava命令的时候总是会报几个ORA-29521: referenced name java/xxx/xxx/xxx could not be found 报的错是dom4j和commons找不到类。

从网上找到的解决方法也是众说纷纭,有的说这个是因为OJVM的问题,有的说是因为Jar包的问题。有的说是因为Jar包的相关依赖包缺少导致的,但是自己试了一下都没有解决这个问题,

最后用了一个“土方法”解决了这个问题 :因为我用的这个价包都是开源的,可以从官网上下载的到源码所以先从官网上下载源代码 导入到Eclipse看一下发现确实这些Jar包都依赖了另外的依赖Jar包但是这些方法我都用不上所以索性直接Copy需要用的源码到项目中把自己项目中已经引用的包名都拷贝进来,然后修修改改,再把引用的Jar删掉。不过jdbc的包却没有报这个错误,个人猜测可能是某些Jar包的Maven文件导致的,如果有朋友知道为什么的话可以说下。


最后执行导出(Export..->Runnable JAR file->Package required libraires into generated JAR 一路NEXT) 导出后的Jar包 执行LoadJava命令的时候就不会报这个错了。

以上是关于Oracle调用Java方法(下)复杂Jar包封装成Oracle方法以及ORA-29521错误的主要内容,如果未能解决你的问题,请参考以下文章

Oracle调用Java类开发的存储过程函数的方法

Oracle触发器反向调用Java程序

java调用jar包中的类

C#调用java类jar包方法

Eclipse如何导入jar包

UDF函数,hive调用java包简单方法