0

我有一个嵌入jsp(IBM FileNet JavaViwer)的小程序,它在jsp页面中加载文档。

小程序通过 http 请求很好地加载。

但是使用 https 我遇到了问题。

Applet 使用 https 加载我在 WAS 上部署的开发服务器(没有任何网络服务器)安装 jre5 或 jre6 的客户端可以完美地查看它。

但是在我的 IHS 服务器位于 WAS 前面的测试环境中,Applet 加载失败,jre 5 客户端的 classnot found 异常。对于 Jre 6 客户端小程序在测试服务器上加载 https 也是如此。

以下是 Java 控制台日志:


Java Plug-in 1.5.0_15
Using JRE version 1.5.0_15 Java HotSpot(TM) Client VM
User home directory = C:\Users\user1


basic: Cache is enabled
basic: Location: C:\Users\user1\AppData\LocalLow\Sun\Java\Deployment\cache\javapi\v1.0
basic: Maximum size: unlimited
basic: Compression level: 0

basic: Plugin modality.register
----------------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
l:   dump classloader list
m:   print memory usage
o:   trigger logging
p:   reload proxy configuration
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack
x:   clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------

basic: Registered modality listener
liveconnect: Invoking JS method: document
liveconnect: Invoking JS method: URL
basic: Referencing classloader: sun.plugin.ClassLoaderInfo@ee6681, refcount=1
basic: Added progress listener: sun.plugin.util.GrayBoxPainter@1fd6bea
basic: Loading applet ...
basic: Initializing applet ...
basic: Starting applet ...
basic: Referencing classloader: sun.plugin.ClassLoaderInfo@ee6681, refcount=2
basic: Releasing classloader: sun.plugin.ClassLoaderInfo@ee6681, refcount=1
basic: httpCompression = true
liveconnect: Invoking JS method: execScript
liveconnect: Invoking JS method: evalIntermediateValueToReturn
network: Connecting https://X.X.X.X:443/myApp/FnJavaV1Files/ji.jar with proxy=HTTP @ /Y.Y.Y.Y:8080
network: Connecting https://X.X.X.X:443/myApp/FnJavaV1Files/ji/applet/jiApplet.class with proxy=HTTP @ /Y.Y.Y.Y:8080
network: Connecting https://X.X.X.X:443/myApp/FnJavaV1Files/ji/applet/jiApplet/class.class with proxy=HTTP @ /Y.Y.Y.Y:8080
load: class ji.applet.jiApplet.class not found.
java.lang.ClassNotFoundException: ji.applet.jiApplet.class
 at sun.applet.AppletClassLoader.findClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at sun.applet.AppletClassLoader.loadClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at sun.applet.AppletClassLoader.loadCode(Unknown Source)
 at sun.applet.AppletPanel.createApplet(Unknown Source)
 at sun.plugin.AppletViewer.createApplet(Unknown Source)
 at sun.applet.AppletPanel.runLoader(Unknown Source)
 at sun.applet.AppletPanel.run(Unknown Source)
 at java.lang.Thread.run(Unknown Source)
basic: Exception: java.lang.ClassNotFoundException: ji.applet.jiApplet.class
java.lang.ClassNotFoundException: ji.applet.jiApplet.class
 at sun.applet.AppletClassLoader.findClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at sun.applet.AppletClassLoader.loadClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at sun.applet.AppletClassLoader.loadCode(Unknown Source)
 at sun.applet.AppletPanel.createApplet(Unknown Source)
 at sun.plugin.AppletViewer.createApplet(Unknown Source)
 at sun.applet.AppletPanel.runLoader(Unknown Source)
 at sun.applet.AppletPanel.run(Unknown Source)
 at java.lang.Thread.run(Unknown Source)
basic: Plugin modality.pushed
basic: Modality pushed
basic: push javax.swing.JDialog[dialog0,549,317,268x134,layout=java.awt.BorderLayout,modal,title=Error - Java,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,3,25,262x106,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
basic: Plugin modality.pushed
basic: Modality pushed
basic: push javax.swing.JDialog[dialog0,549,317,422x303,layout=java.awt.BorderLayout,modal,title=Error - Java,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,3,25,416x275,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
basic: Plugin modality.popped
basic: Modality popped
basic: pop javax.swing.JDialog[dialog0,549,317,422x303,invalid,hidden,layout=java.awt.BorderLayout,modal,title=Error - Java,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,3,25,416x275,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
basic: Plugin modality.popped
basic: Modality popped
basic: pop javax.swing.JDialog[dialog0,549,317,422x303,invalid,hidden,layout=java.awt.BorderLayout,modal,title=Error - Java,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,3,25,416x275,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
4

1 回答 1

0

原来测试环境中的 Webserver 不支持 SSLV3 协议。它仅支持 TLSV1。Jre 5 客户端默认使用 SSLv2Hello 和 SSLv3,因此由于没有通用协议而引发错误。但是 jre 6 客户端默认在 SSLv3 和 TLV1 上运行,在这种情况下,TLSV1 是常见的协议 btw 客户端和 Web 服务器,并且连接成功并且小程序加载正常。

错误消息 ClassNotFound 虽然很奇怪..

于 2016-04-13T01:43:31.887 回答