高分跪求:applet访问数据库解决方法,急!!!!

mycsdnid 2005-05-30 05:40:00
下面是问题描述:
服务器架构如下:
数据库服务器(ORACLE) A机
应用服务器(WEBLOGIC) B机
客户机(PC) C机

现在有个流程定制工具,是用APPLET写的,但数据信息需要从A机数据库读取。
APPLET程序在开发环境调试通过,但是把它嵌入网页出现问题如下(数据库访问被屏蔽):
java.security.AccessControlException: access denied (java.util.PropertyPermission oracle.jserver.version read) at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPropertyAccess(Unknown Source) at java.lang.System.getProperty(Unknown Source) at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:433) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source)

查了很多资料,也问了很多人,还是没有解决这个问题。
具体解决方案好像有两种
(1)修改策略文件,即java.policy
(2)applet签名

现在我两种方式都试了,可能是由于我比较笨,没有理解,所以还是访问不了。
现在希望高手能指点一下,希望能够说得比较明了:
比如修改哪个上面的策略文件(A?B?C?)
做签名在哪个上面做,以及到底怎么用?

谢谢,再次感谢,这个问题困扰已久,希望高手不吝赐教!
由于本人级别不够,暂放100,分不够另开贴放。
...全文
237 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
DanielYWoo 2005-06-01
  • 打赏
  • 举报
回复
默认的安全沙箱禁止applet访问来源站点以外的连接,所以你如果不想让每个客户都改security policy或者用签名,你最好通过web server来取数据,取完数据就断开连接。如果你一定要保持数据库连接,你可以通过web server lookup到connection,然后再客户端applet里面读取数据得到resultset。
nwpuzhangjie 2005-06-01
  • 打赏
  • 举报
回复
建议使用HTTP协议流来解决,在APPLET文件中用Response发送查询字符串,服务器端有个WEB文件用Request接受,数据多少都没有问题,但要自己编写一些数据库内容分隔的代码
也可以通过SOCKET向服务器发送请求,由Applet来访问
mycsdnid 2005-05-30
  • 打赏
  • 举报
回复
楼上和2楼是同一个意思吧!

我现在正犹豫要不要改。

如果改,用什么方式能够比较快的把数据集传递到applet?
javaguan2 2005-05-30
  • 打赏
  • 举报
回复
不如向服务器发HTTP的POST请求来得快而且效率高而且易于程序的的扩展和管理.
APPLET直接访问数据库不可取
mycsdnid 2005-05-30
  • 打赏
  • 举报
回复
谢谢,我知道可以通过sevlet和applet之间通讯来解决applet访问数据库问题。

但是,现在情况是
1、applet里需要的数据较多,据说sevlet不能传递数据集给applet。如果单个参数传递可能太耗资源。
2、现有applet程序代码已经完成,且在开发环境中运行正常。所以也不想改动太大。

刚才又试了下签名,按网上步骤详细做了,可还是依旧报这个错误。

郁闷!!!!
YuLimin 2005-05-30
  • 打赏
  • 举报
回复
你应用通过这个方案:

C机上面的 Applet => 访问 B机上面的Servlet程序,由Servlet程序去访问A机的数据库

FAQ里面有关于这方面的资料,你查找一下。
mycsdnid 2005-05-30
  • 打赏
  • 举报
回复
自己顶下,高手请指教!!!
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 依据所提供的资料,我们深入剖析此问题以及所给出的两种算法方案。 ### 问题背景 该问题源自王晓东编撰的《算法设计与实验题解》一书,书中阐述了一个值得注意的数学议题:针对一本页码从1到n顺序编号的书籍,要求统计所有页码中数字0至9各自出现的频次。例如,若n=13,则页码序列为1、2、...、13,其中数字1出现5次(体现在1、10、11、12、13中),数字0出现1次(体现在10中)。 ### 问题描述 具体而言,我们需要开发一种算法,其输入参数为一个正整数n,输出结果需为0至9这十个数字各自出现的频次。所有页码均以十进制形式呈现,且不包含任何前导零,即不会出现如006之类的页码表示。 ### 解决方案一:时间复杂度为O(n*log10(n))的算法 首先,介绍一种时间复杂度为O(n*log10(n))的算法实现。其核心构思在于遍历从1到n的每一个数值,然后逐一分解每个数值的各个位,并统计各类数字出现的频次。具体步骤如下: 1. 初始化一个长度为10的数组`count`,用于记录0至9每个数字出现的频次,初始值均为0。 2. 从1开始遍历至n,对于每一个数值i,将其转换为整数并进行以下操作: - 利用循环结构,持续将当前数值除以10,获取余数(即当前最低位的数字),并累加到对应的计数器中。 3. 遍历完成后,输出`count`数组中的每一个元素,即为所求的结果。 ### 解决方案二:优化算法 为了提升效率,提出了一种更为优越的算法。该算法基于以下观察:在1到10^n-1之间的任意区间内,每一种数字0至9出现的频次是相等的。例如,在1到999之间,每一种数字0至9出现的频次均相...

67,535

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧