JSP中的JDBC连接:java.lang.RuntimePermission accessClassInPackage.sun.JDBC.odbc
在这里,我试图通过JSP中的JDBC连接:java.lang.RuntimePermission accessClassInPackage.sun.JDBC.odbc,java,sql-server,jsp,web-applications,jdbc,Java,Sql Server,Jsp,Web Applications,Jdbc,在这里,我试图通过JDBC连接数据库 这是我的代码,最后出现了以下异常 <%@ page import ="java.sql.*" %> <%@ page import ="javax.sql.*" %> <% Connection con = null; String url = "jdbc:jtds:sqlserver://192.168.0.123:4070/"; String db = "RUTHER_FORD"; String driv
JDBC
连接数据库
这是我的代码,最后出现了以下异常
<%@ page import ="java.sql.*" %>
<%@ page import ="javax.sql.*" %>
<%
Connection con = null;
String url = "jdbc:jtds:sqlserver://192.168.0.123:4070/";
String db = "RUTHER_FORD";
String driver = "net.sourceforge.jtds.jdbc.Driver";
String userName ="RUTHER";
String password="SORRY_CONFIDENTIAL";
int sumcount=0;
Statement st;
try{
Class.forName(driver).newInstance();
con = DriverManager.getConnection(url+db,userName,password);
String query = "select * from user_master";
st = con.createStatement();
ResultSet rs = st.executeQuery(query);
%>
<%
while(rs.next()){
%>
<%System.out.println(rs.getString(1));%>
<%System.out.println(rs.getString(2));%>
<%
}
%>
<%
}
catch(Exception e){
e.printStackTrace();
}
%>
<html>
.
.
.
.
下面我又看到了一个例外
java.security.AccessControlException: access denied (java.io.FilePermission C:\Windows\TEMP read)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:166)
at java.lang.SecurityManager.checkRead(SecurityManager.java:871)
at java.io.File.isDirectory(File.java:752)
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.unpackProperties(ConnectionJDBC2.java:1253)
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:280)
at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at org.apache.jsp.mmrda_005fsupplierportal.index_002dleft_002dcontainer_jsp._jspService(index_002dleft_002dcontainer_jsp.java:71)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
P.S I added jtdc.1.2.5 jar to my `class path`.
java.security.AccessControlException:访问被拒绝(java.io.FilePermission C:\Windows\TEMP read)
位于java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
在java.security.AccessController.checkPermission(AccessController.java:546)
位于java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
在com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:166)上
位于java.lang.SecurityManager.checkRead(SecurityManager.java:871)
位于java.io.File.isDirectory(File.java:752)
位于net.sourceforge.jtds.jdbc.ConnectionJDBC2.unpacproperties(ConnectionJDBC2.java:1253)
位于net.sourceforge.jtds.jdbc.ConnectionJDBC2。(ConnectionJDBC2.java:280)
位于net.sourceforge.jtds.jdbc.ConnectionJDBC3。(ConnectionJDBC3.java:50)
位于net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)
位于java.sql.DriverManager.getConnection(DriverManager.java:582)
位于java.sql.DriverManager.getConnection(DriverManager.java:185)
位于org.apache.jsp.mmrda\u 005fsupplierportal.index\u 002dleft\u 002dcontainer\u jsp.\u jsp服务(index\u 002dleft\u 002dcontainer\u jsp.java:71)
位于org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
另外,我将jtdc.1.2.5jar添加到我的“类路径”中。
我遗漏了什么?有什么建议吗
谢谢您的时间。创建server.policy文件并将文件放在java文件所在的位置。 在文件中添加以下行并保存。试试这个,告诉我们它是否有效
grant {
permission java.security.AllPermission;
};
检查一下,您真的不应该在jsp中包含与数据库相关的代码(或者根本不应该使用Scriptlet)。看见
grant {
permission java.security.AllPermission;
};