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/xxxcould 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命令的时候就不会报这个错了。