我碰到这个问题,运行时出现:
com.ms.security.SecurityExceptionEx[DBConnection.getSQLConnection]: cannot access "localhost"
这个是不能连接数据库com.ms.security.SecurityExceptionEx[CtrPanel.actionPerformed]: cannot access file c:/test/1.txt
这个是不能写入本地文件。
都是安全性问题。在网上找下资料,地址是 http://support.microsoft.com/kb/175622/zh-cn,下面是这网页上说明的原因。
. 如果您的小程序尝试执行受信任的操作,并且不受信任,将发生一个 SecurityExceptionEx[methodname.classname]。
如果,则会发生 SecurityExceptionEx [主机]:
在 Web 浏览器调用执行受信任的操作的方法和该方法不首先 Assert 执行受信任的操作的权限。 如果您的小程序没有第一个断言其权限的小程序的默认构造函数、 Init()、 start()、 stop(),或 destroy() 方法中执行受信任的操作,则会发生这种情况。
在 Web 浏览器尝试调用从存档文件结合 cabbase 的存档文件或 cabinets 参数不位于相对到基本代码 URL。 如果小程序正在运行从一个基本代码位置,而存档文件位于不同于在基本代码的其他位置,则会发生此情况这种情况。
如果脚本引擎调用执行一个受信任的操作的方法,和方法不首先断言的权限执行受信任的操作,将发生一个 SecurityExceptionEx [未知]。 如果您的小程序具有由 VBScript 或 JScript,调用的公共方法,并且没有第一个断言其权限的方法执行受信任的操作,则会发生这种情况。
A"Java.Lang.SecurityException: J/Direct 方法已未被授权为不受信任的调用方的代表使用"如果 Web 浏览器或脚本引擎调用进行一个 J/Direct 调用的方法,该方法是否不首先断言其权限执行受信任的操作会发生。有没人遇到这难题,该怎么解决啊?高手请帮忙,非常感谢!
com.ms.security.SecurityExceptionEx[DBConnection.getSQLConnection]: cannot access "localhost"
这个是不能连接数据库com.ms.security.SecurityExceptionEx[CtrPanel.actionPerformed]: cannot access file c:/test/1.txt
这个是不能写入本地文件。
都是安全性问题。在网上找下资料,地址是 http://support.microsoft.com/kb/175622/zh-cn,下面是这网页上说明的原因。
. 如果您的小程序尝试执行受信任的操作,并且不受信任,将发生一个 SecurityExceptionEx[methodname.classname]。
如果,则会发生 SecurityExceptionEx [主机]:
在 Web 浏览器调用执行受信任的操作的方法和该方法不首先 Assert 执行受信任的操作的权限。 如果您的小程序没有第一个断言其权限的小程序的默认构造函数、 Init()、 start()、 stop(),或 destroy() 方法中执行受信任的操作,则会发生这种情况。
在 Web 浏览器尝试调用从存档文件结合 cabbase 的存档文件或 cabinets 参数不位于相对到基本代码 URL。 如果小程序正在运行从一个基本代码位置,而存档文件位于不同于在基本代码的其他位置,则会发生此情况这种情况。
如果脚本引擎调用执行一个受信任的操作的方法,和方法不首先断言的权限执行受信任的操作,将发生一个 SecurityExceptionEx [未知]。 如果您的小程序具有由 VBScript 或 JScript,调用的公共方法,并且没有第一个断言其权限的方法执行受信任的操作,则会发生这种情况。
A"Java.Lang.SecurityException: J/Direct 方法已未被授权为不受信任的调用方的代表使用"如果 Web 浏览器或脚本引擎调用进行一个 J/Direct 调用的方法,该方法是否不首先断言其权限执行受信任的操作会发生。有没人遇到这难题,该怎么解决啊?高手请帮忙,非常感谢!
解决方案 »
- struts2上传下载导入导出老是报这个错误但不影响程序运行是不是struus2的bug
- sturts2 上传文件问题.
- 在dom解析中怎么判断此节点不存在?
- JSP数据提交到SQL中的空格问题
- resin报Too many open files错(救命啊。。。)
- 我的SQL SERVER 2K 的JDBC2.0驱动怎么有问题啊
- 关于jdbc的问题??
- 4天4夜了,WAS3.5+DB2(7.1)连接池问题!我快崩溃了!救救 我~~~~~~~~~~~~
- 为实体bean自动生成主键,主键只能为Integer吗?
- 哪儿有j2EE 1.3源码下载,sun的网站上好像只有1.2.1版本的,没有1.3的啊??
- myeclipse中struts配置文件出现提示框的方法
- webservice客户端代码如何才算一个request请求
JDK文檔里面提到這個問題
但是里面沒有講怎么解決
有个话,大侠给个地址
原因: 如果您的小程序尝试执行受信任的操作,并且不受信任,将发生一个 SecurityExceptionEx[methodname.classname]。
如果,则会发生 SecurityExceptionEx [主机]:
在 Web 浏览器调用执行受信任的操作的方法和该方法不首先 Assert 执行受信任的操作的权限。 如果您的小程序没有第一个断言其权限的小程序的默认构造函数、 Init()、 start()、 stop(),或 destroy() 方法中执行受信任的操作,则会发生这种情况。
在 Web 浏览器尝试调用从存档文件结合 cabbase 的存档文件或 cabinets 参数不位于相对到基本代码 URL。 如果小程序正在运行从一个基本代码位置,而存档文件位于不同于在基本代码的其他位置,则会发生此情况这种情况。
如果脚本引擎调用执行一个受信任的操作的方法,和方法不首先断言的权限执行受信任的操作,将发生一个 SecurityExceptionEx [未知]。 如果您的小程序具有由 VBScript 或 JScript,调用的公共方法,并且没有第一个断言其权限的方法执行受信任的操作,则会发生这种情况。
A"Java.Lang.SecurityException: J/Direct 方法已未被授权为不受信任的调用方的代表使用"如果 Web 浏览器或脚本引擎调用进行一个 J/Direct 调用的方法,该方法是否不首先断言其权限执行受信任的操作会发生。
回到顶端
如果一个 SecurityExceptionEx[methodname.classname] 出现您必须签名您的小程序,使其能够执行 Java 沙箱之外的操作。 有关详细信息,请参阅 Microsoft SDK for Java 如本文的在"参考"一节所述中文档。 ( 注意 : 您必须低签名具有适当权限的在 CAB 文件或-LowX 权限可确保您有适当的访问,或者您可能会登录具有适当的精细权限使用传递给 Signcode.exe ini 文件)。。 如果就会发生 SecurityExceptionEx [主机] 则您可以执行以下项之一中:
如果您确信您的调用方不损害如果您信任的操作执行,解决方法都相同为,SecurityExceptionEx [未知] 则 (请参阅该项目符号列表段落)。
确保任何档案文件存档,结合 cabbase 中, 被引用或 CAB 压缩包参数标记位于相对于在基本代码的小程序。
如果一个 SecurityExceptionEx [主机],SecurityExceptionEx [未知],或"Java.Lang.SecurityException: J/Direct 方法已未被授权为不受信任的调用方的代表使用",并且确保在调用方不会损害如果您信任的操作执行,您可以执行以下之一:
断言使用 PolicyEngine 类您使用的权限。 ( 注意 : PolicyEngine.assertPermission() 程序生存期与它要调用的方法的生存期相同。 一次断言其权限返回该方法将需要 re-assert 权限根据)。
生成单独的线程授予执行该操作,线程权限的情况下执行受信任的操作。
import com.ms.security.*;import java.applet.Applet;
import java.net.*;
import java.io.*;
import java.awt.*;public class myApplet1 extends Applet {
TextField message=null; public myApplet1() {
message=new TextField();
setLayout(new BorderLayout());
add("Center",message);
} public void init()
{
/*
Our init function needs to read a character from a URL, which is a
trusted operation. We assert NET permission to stop the stack
crawling since the Web page isn't trusted. The applet must be
signed so the init() function has permission to perform net
operations.
*/
try {
if (Class.forName("com.ms.security.PolicyEngine") != null) {
PolicyEngine.assertPermission(PermissionID.NETIO);
}
} catch (Throwable cnfe) {
} try {
URL url = new URL("http://www.microsoft.com/");
DataInputStream dis;
dis = new DataInputStream(url.openConnection().getInputStream());
dis.readChar();
message.setText("Read character.");
} catch (MalformedURLException mue) {
message.setText("MalformedURL");
mue.printStackTrace();
} catch (Throwable t) {
message.setText(t.toString());
t.printStackTrace();
}
}
}当然无论你采用什么方式,都是非常繁琐的,因为你要导入VJ++的ActiveX组件。这主要的原因是MS JVM的编译环境是在MS VM(vj++)下,而非纯Sun JDK下。如果你是单纯的applet开发,那么在Sun jvm中,是可以成功运行的。但是你要做VRML,相比一定要用到vrml97.jar,或者是EAI(corteai.zip),那么只能在MS JVM中执行,否则会报错。因为这两个JAR/ZIP包是用MS 的编译环境打包的。所以,建议的最终解决方案。用APPLET与Servelt建立通信,将要保存的数据,传递至Servelt,然后由Servelt来对数据库进行读写。这是最理想的做法。至于applet与Servlet的通信方式,那就是采用URLConnection类