这是插在JSP中的内容
<%
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd HHmmss");
java.util.Calendar calendar = java.util.Calendar.getInstance();
String date = format.format(calendar.getTime());
String file = "D://setup//FTP//report//"+date+".txt";
java.io.BufferedWriter bw = new java.io.BufferedWriter(new java.io.FileWriter(new java.io.File(file)));
bw.write("myName:"+myname);
bw.newLine();
bw.write("name1:"+name1+"-"+b1a);
bw.newLine();
bw.write("name2:"+name2+"-"+b2a);
bw.newLine();
bw.write("name3:"+name3+"-"+b3a);
bw.newLine();
bw.close();%>错误:
org.apache.jasper.JasperException: access denied (java.io.FilePermission D:\setup\FTP\report\2008-10-07 230118.txt write)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
sun.reflect.GeneratedMethodAccessor59.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:239)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:268)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:157)
root cause java.security.AccessControlException: access denied (java.io.FilePermission D:\setup\FTP\report\2008-10-07 230118.txt write)
java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
java.security.AccessController.checkPermission(AccessController.java:427)
java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
java.lang.SecurityManager.checkWrite(SecurityManager.java:962)
java.io.FileOutputStream.<init>(FileOutputStream.java:169)
java.io.FileOutputStream.<init>(FileOutputStream.java:131)
java.io.FileWriter.<init>(FileWriter.java:73)
org.apache.jsp.action_jsp._jspService(action_jsp.java:69)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
sun.reflect.GeneratedMethodAccessor59.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:239)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:268)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:157)

解决方案 »

  1.   

    java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd HHmmss"); 
    java.util.Calendar calendar = java.util.Calendar.getInstance(); 
    String date = format.format(calendar.getTime()); 
    String file = "D://setup//FTP//report//"+date+".txt";
    (new java.io.File("D://setup//FTP//report")).mkdirs();
    java.io.BufferedWriter bw = new java.io.BufferedWriter(new java.io.FileWriter(new java.io.File(file))); 
    bw.write("myName:"+myname); 
    bw.newLine(); 
    bw.write("name1:"+name1+"-"+b1a); 
    bw.newLine(); 
    bw.write("name2:"+name2+"-"+b2a); 
    bw.newLine(); 
    bw.write("name3:"+name3+"-"+b3a); 
    bw.newLine(); 
    bw.close(); 
    没有创建路径,故出错
      

  2.   

    改一下jvm启动中java.security.policy参数中所指定文件配置就可以了,如果没有则自己创建一个新的policy文件如下:
    grant {
        permission java.security.AllPermission;
    };
      

  3.   

    (new java.io.File("D://setup//FTP//report")).mkdirs(); 
    1楼的对... 你可以写成:D:/setup//FTP/report
                    或者:D:\\setup\\FTP\\report
      

  4.   

    我已经找到原因了,java策略限制了