Suresh Atta
Suresh Atta

Reputation: 122006

JDBC connection in JSP :java.lang.RuntimePermission accessClassInPackage.sun.jdbc.odbc

Here i am trying to connect with Database through JDBC.

Here is my code and ended up with the below exception.

<%@ 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>

.
.
.
.

//Below is the exception facing ,when i am dispatching the page

 java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.jdbc.odbc)
        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.checkPackageAccess(SecurityManager.java:1512)

Below I saw one more exception

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`.

What i am missing ??any suggetions on this ?

Thanks for your time.

Upvotes: 2

Views: 3794

Answers (1)

AmitG
AmitG

Reputation: 10553

Create server.policy file and put file in the place where your java files are. Add following line in the file and save. Try this one and tell us if it works

grant {
permission java.security.AllPermission;
};

Upvotes: 1

Related Questions