简体   繁体   English

在servlet的doGet方法中创建配置对象给我异常

[英]Creating Configuration object inside doGet method of servlet giving me Exception

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

    String name=req.getParameter("name");
    String email=req.getParameter("email");
    int marks=Integer.parseInt(req.getParameter("marks"));

    Student st=new Student(0,name,email,marks);

    System.out.println("Inside get method before configuration object generation");
    Configuration cfg=new Configuration();
    System.out.println("After configuration initialization");
    cfg.configure("Resourses/hibernate.cfg.xml");
    System.out.println("after giving hibernate config file");
    sf=cfg.buildSessionFactory();

}

and I am getting this error in output 我在输出中收到此错误

inside init method after calling super Inside get method before configuration object generation 在配置对象生成之前调用超级内部获取方法之后的内部初始化方法

Sep 25, 2016 8:56:41 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Controller.StudentRegistrationServlet] in context with path [/StudentRegistration] threw exception
java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "createClassLoader")
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:457)
    at java.security.AccessController.checkPermission(AccessController.java:884)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)

The default Java Runtime Security setting does not allow the run time permission 'createClassLoader', which is required by the ArcSDE Java API. 默认的Java运行时安全设置不允许ArcSDE Java API要求运行时权限'createClassLoader'。

Update the C:\\Program Files\\Java\\jdk1.7.0_79\\jre\\lib\\security\\java.policy file . 更新C:\\Program Files\\Java\\jdk1.7.0_79\\jre\\lib\\security\\java.policy 文件
Add the following lines to the java.policy file inside default permissions "grant ... { ... }" block : 将以下行添加到默认权限“ grant ... {...}”块内的java.policy文件中

Code:
// default permissions granted to all domains
grant {
     permission java.lang.RuntimePermission "createClassLoader";
     permission java.util.PropertyPermission "NLS_LANG", "read";
     //....rest of code as it is. 
     }

Note The servlet container may have its own security policy that overrides the JRE-wide policy. 注意 Servlet容器可能具有自己的安全策略,该策略将覆盖JRE范围的策略。 For example, Tomcat uses the one in TOMCAT_HOME/conf/catalina.policy , not the file that vou've been modifying. 例如,Tomcat使用TOMCAT_HOME/conf/catalina.policy的文件,而不使用您一直在修改的文件。

For Tomcat server add permissions in C:\\Program Files\\Apache Software Foundation\\Tomcat 7.0\\conf\\catalina.policy file next to WEB APPLICATION PERMISSIONS as shown below: 对于Tomcat服务器,在“ Web应用程序权限”旁边的C:\\ Program Files \\ Apache Software Foundation \\ Tomcat 7.0 \\ conf \\ catalina.policy文件中添加权限,如下所示:

// ========== WEB APPLICATION PERMISSIONS =====================================
grant {
     permission java.lang.RuntimePermission "createClassLoader";
     permission java.util.PropertyPermission "NLS_LANG", "read";
     //....rest of code as it is. 
     }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM