我使用loadjava实用程序将一个java类加载到oracle中
这个类有一些system.out.println消息.
当我从这个类执行一个方法时,我想看到sysout消息.
谁能告诉我在哪里可以找到这些消息?
我正在尝试在oracle中使用第三方java库.该库似乎有相同的1.4版本的JVM,我们的Oracle 10g服务器主机的兼容,因为它运行Oracle的罚款之外,所以我觉得我应该能得到这个工作.这个库最终使基于SOAP的HTTP请求,我也得到类解析错误,当我在Oracle中运行.
这是一条显示差异的线:
Class msgfact = Class.forName("com.sun.xml.messaging.saaj.soap.MessageFactoryImpl");
Run Code Online (Sandbox Code Playgroud)
我尝试使用loadjava实用程序将这些库注册到Oracle中,我得到了我认为是成功的结果:
C:\>loadjava -verbose -schema MYUSER -user MYUSER/MYPWD@dbinstance -force saaj-impl.jar
看起来所有东西都被加载了,我可以在该列表中看到这个MessageFactoryImpl类.但后来我尝试从Oracle SQL运行这行代码(在我编写的另一个类中并使用loadjava加载),此行抛出一个ClassNotFoundException(java.lang.ClassNotFoundException:com/sun/xml/messaging/saaj/soap/MessageFactoryImpl ).
然后我回去尝试在loadjava命令行添加"-resolve"开关.它就像这些saaj类正在注册,但它们没有正确解析.
如何成功地将这些saaj类放入Oracle中,或者如果由于某种原因Oracle已经加载了这些类,那么如何说服我自己的代码成功使用现有类?
FWIW,我已经采取措施确保授予适当的套接字权限,并且我的代码可以成功地向目标URL发出通用的http请求.它只是在使用库的SOAP栈来实现它时遇到了麻烦.
编辑:这是我的loadjava结果的示例.这似乎正好显示了什么是失败的,但我很困惑为什么这些特定类在解决前步骤中似乎得到正确处理时没有得到解决.我在这里删除了大约80%的文件,但还有其他类显示相同的类解决问题.
arguments: '-verbose' '-schema' 'MYSCHEMA' '-user' 'MYSCHEMA/MYSCHEMA@actest' '-resolve' '-force' 'saaj-impl.jar' [snip] creating : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/EnvelopeFactory loading : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/EnvelopeFactory creating : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/GifDataContentHandler loading : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/GifDataContentHandler creating : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/JpegDataContentHandler loading : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/JpegDataContentHandler creating : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/MessageFactoryImpl loading : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/MessageFactoryImpl creating : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/MessageImpl loading : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/MessageImpl [snip] resolving: class MYSCHEMA.com/sun/xml/messaging/saaj/soap/AttachmentPartImpl resolving: class …