我创建了一个Java Applet来操作JSP网页的表单字段。当然,JSP调用Java Applet。
当我在JSP上运行Java Applet时,我在Java控制台中遇到的错误:
Ignored exception: java.security.PrivilegedActionException:
java.lang.reflect.InvocationTargetException
我没有调用InvocationTargetException或在代码中传递任何异常。不知怎的,我设法通过艰苦的试错来追踪它,导致错误的一行是:
BlowfishCBC bfcbc = new BlowfishCBC(testkey, 0, testkey.length, CBCIV_START);
作为测试,我禁用了所有依赖于JSP的代码,因此我可以在Eclipse中运行它。我创建了一个执行Java Applet的main方法,然后在Eclipse中运行它。我根本没有任何错误或警告。
我导出了相同的Java Applet,作为JAR,将其复制到服务器,重新启动Apache Tomcat,转到我的Web浏览器页面,运行applet,发生了相同的InvocationTargetException错误
可能是什么问题?
注意:我的代码中没有使用try..catch。我可以在代码中添加什么来捕获此异常信息以及如何执行此操作?
谢谢。
更新
以下是来自Java控制台的堆栈跟踪:
java.net.MalformedURLException: no protocol:
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at sun.plugin.liveconnect.SecureInvocation.checkLiveConnectCaller(Unknown Source)
at sun.plugin.liveconnect.SecureInvocation.access$000(Unknown Source)
at sun.plugin.liveconnect.SecureInvocation$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin.liveconnect.SecureInvocation.CallMethod(Unknown Source)
java.net.MalformedURLException: no protocol:
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at sun.plugin.liveconnect.SecureInvocation.checkLiveConnectCaller(Unknown Source)
at sun.plugin.liveconnect.SecureInvocation.access$000(Unknown Source)
at sun.plugin.liveconnect.SecureInvocation$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin.liveconnect.SecureInvocation.CallMethod(Unknown Source)
java.net.MalformedURLException: no protocol:
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at sun.plugin.liveconnect.SecureInvocation.checkLiveConnectCaller(Unknown Source)
at sun.plugin.liveconnect.SecureInvocation.access$000(Unknown Source)
at sun.plugin.liveconnect.SecureInvocation$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin.liveconnect.SecureInvocation.CallMethod(Unknown Source)
in encrypt method
trying to get pwd value from document
got pwd from document, password is 12345
is this getting here?
Ignored exception: java.security.PrivilegedActionException: java.lang.reflect.InvocationTargetException
我认为这是堆栈跟踪。我希望这些信息充足且有用。
答案 0 :(得分:0)
我发现了问题。它与代码无关,坚持不懈。这是清单文件。
这是清单文件,因为它最初是由Eclipse创建的:
Manifest-Version: 1.0
这是在我修改它之后:
Manifest-Version: 1.0
Class-Path: blowfishj.jar
我没有意识到Java控制面板应该在其资源中显示blowfishj.jar文件。我在那里看到了我的Java Applet,但是在我对这个清单文件进行了更改之前,没有使用blowfishj.jar文件。我没有意识到它需要清单文件。
我不明白为什么它在清单文件中需要这个以及为什么这个修改会修复它。也许有人可以回答这个问题。
谢谢。