gpt4 book ai didi

java - 当我尝试在 jsp 上运行小程序时出现 AccessControlException

转载 作者:行者123 更新时间:2023-12-01 15:33:15 25 4
gpt4 key购买 nike

当我运行嵌入了小程序的 jsp 页面时,出现异常

我的jsp文件代码

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<applet code="myform.applet" archive="applet.jar,ojdbc14.jar" width="600" height="480"/>
</body>
</html>

applet.jar,我在其中创建了一个类,在其中我尝试从 Oracle 数据库表中检索数据库值。

和异常通过

Exception in thread "thread applet-myform.applet-1" java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at myform.applet.init(applet.java:28)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission getClassLoader)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.ClassLoader.getSystemClassLoader(Unknown Source)
at oracle.jdbc.driver.OracleDriver.<clinit>(OracleDriver.java:316)
... 5 more

我到处搜索,但没有得到我的解决方案,并且在某个地方已经以广泛的方式解释了它,作为新手我无法理解。请帮助我,这两天我一直被这个问题困扰。提前致谢。

最佳答案

小程序在安全环境中运行。 SecurityManager 控制小程序正在执行的操作,并不允许它执行禁止的操作。

从堆栈跟踪中我们可以看到 Oracle 驱动程序尝试访问 Applet 禁止的系统类加载器。

通常有 3 种方法可以解决这个问题。

  1. 签署您的小程序。在这种情况下,你将能够做一切事情。不过要小心。下一个问题是驱动程序将无法连接到数据库,因为客户端浏览器和运行 Oracle 的服务器之间存在防火墙。
  2. 将您的客户端开发为常规应用程序并使用 Java Web start 来启动它。用户仍然可以通过单击网络浏览器中的链接来启动应用程序,但他将获得功能齐全的应用程序(与签名小程序的情况完全相同)。防火墙问题在这里仍然相关。
  3. 创建 3 层应用程序。前端可以是小程序或瘦客户端。业务逻辑可能是一个简单的 Web 应用程序,它公开 RESTful API 并连接到数据库以检索和存储数据。

关于java - 当我尝试在 jsp 上运行小程序时出现 AccessControlException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9294809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com