你的文件的属性有问题没有?比如你要写这个文件,然而
这个文件的属性却是只读的?

解决方案 »

  1.   

    我这里也出现了问题,我是第一次用weblogic。
    导出EXCEL时出现这样的问题:
    Error 500--Internal Server Error 
    java.lang.NullPointerException
     at java.io.File.(File.java:180)
     at jsp_servlet.__test_excel_s._jspService(__test_excel_s.java:167)
     at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
     at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:971)
     at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:402)
     at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:446)
     at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
     at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6350)
     at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
     at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
     at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3635)
     at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)
     at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
     at weblogic.kernel.ExecuteThread.run(ExecuteThread 
     我是在weblogic上发布的,在tomcate上是可以的,大家知道是什么问题,怎么解决吗? 代码是:
    <%@ page language="java" contentType="text/html; charset=GBK" %>
    <%@ page import="java.sql.*"%>
    <%@ page import="java.io.*"%>
    <%@ page import="java.util.*"%>
    <%@ page import="java.io.File"%>
    <%@ page import="java.util.Date"%>
    <%@ page import="jxl.*"%>
    <%@ page import="jxl.write.*"%>
    <% 
    String str=(String)session.getAttribute("str");
    String dri=(String)session.getAttribute("dri");
    String tabname=(String)session.getAttribute("tabname");
    String tabword=(String)session.getAttribute("tabword");
    String pass="";
    String filename ="";
    String m ="";
    int a1 = 0;
    int b1 = 0;
    String strname = "";
    pass = new java.io.File(application.getRealPath("test_excel_s.jsp")).getParent() + "\\update\\";
    java.text.SimpleDateFormat D = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
        String date = D.format(new java.util.Date());
    a1 = Integer.parseInt(date.substring(6,8));
    int number=new java.util.Random().nextInt(500);
    filename="update\\"+date+number+".xls"; m=""+date+number+".xls";   
            
    File dir = new File(pass);
    String[] files = dir.list();
    for(int i = 0;i < files.length;i ++){
         File f = new File(dir,files[i]);
         strname = f.getName();
         b1 = Integer.parseInt(strname.substring(6,8));
         if(a1 - b1 >= 1){
          try {
    File myDelFile = new File(pass + strname);
    myDelFile.delete();
    } catch (Exception e) {
    e.printStackTrace();
    }
         }
    }%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK">
    <META HTTP-EQUIV="Refresh" CONTENT="2;URL=<%= filename %>">
    <title>java2excel</title>
    <style type="text/css">
    <!--
    .style3 {font-size: 18px; color: #FF0000; }
    body {
    background-color: #93C9FF;
    }
    -->
    </style>
    <script language="javascript">
    function wclose(){
    window.close(); 
    }
    </script>
    </head>
    <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    <CENTER>请等待,文件准备中...</CENTER>
    <br><CENTER>把文件保存为Excel文件,如c:\temp\inventory.xls</CENTER><p>
      <%
    String cs="";
    String ms="";
    String cus="";
    String po="";
    String inv="";
    String wh_code="";
    String sl="";
    String riqi="";
    cs=(String)session.getAttribute("cs");
    if(request.getParameter("ms")==null || request.getParameter("ms").length() ==0)
    {
    ms="";
    }
    else {
    ms=request.getParameter("ms");
    }
    if(request.getParameter("cus")==null || request.getParameter("cus").length() ==0)
    {
    cus="";
    }
    else {
    cus=request.getParameter("cus");
    }
    po=(String)session.getAttribute("pp");
    inv=(String)session.getAttribute("ii");
    wh_code=(String)session.getAttribute("ww"); if(request.getParameter("sl")==null || request.getParameter("sl").length() ==0)
    {
    sl="";
    }
    else {
    sl=request.getParameter("sl");
    sl=new String(sl.getBytes("ISO-8859-1"),"GBK");
    sl=new String(sl);
    }
    if(request.getParameter("riqi")==null || request.getParameter("riqi").length() ==0)
    {
    riqi="";
    }
    else {
    riqi=request.getParameter("riqi");
    }

    String s=pass+m;
    String targetfile =s;//输出的excel文件名
    String worksheet = "List";//输出的excel文件工作表名
    Vector outerV = new Vector();
    String[] title = {"WH_CODE","Receive NO","Product Code","uom","Product Description","Customer","Customer P/N","Received Qty","Received Date","Customer PO NO","InvoiceNO","Receive Type"};//excel工作表的标题  
       String sql="";
       sql+="select V_WEB_VMI_RECEIVE_UOM.wh_code,V_WEB_VMI_RECEIVE_UOM.RECEIVE_NO,V_WEB_VMI_RECEIVE_UOM.PRODUCT_CODE,v_web_vmi_receive_uom.pack_code,PRODUCT.PRODUCT_DESC,Customer_Reference.CUSTref_NAME,V_WEB_VMI_RECEIVE_UOM.PRODUCT_ALIAS,V_WEB_VMI_RECEIVE_UOM.RECEIVED_QTY,V_WEB_VMI_RECEIVE_UOM.RECEIVED_DATE,V_WEB_VMI_RECEIVE_UOM.PO_NO,V_WEB_VMI_RECEIVE_UOM.LOT_NO,PRODUCT_CLASS.PDTCLASS_DESC,rownum rn  from V_WEB_VMI_RECEIVE_UOM,customer,PRODUCT,product_class,customer_reference where V_WEB_VMI_RECEIVE_UOM.customer_code=customer.customer_code ";
           sql+="and V_WEB_VMI_RECEIVE_UOM.PRODUCT_CODE=PRODUCT.PRODUCT_CODE and V_WEB_VMI_RECEIVE_UOM.pdtclass_code=product_class.pdtclass_code and V_WEB_VMI_RECEIVE_UOM.Customer_Code=customer_reference.customer_code and V_WEB_VMI_RECEIVE_UOM.Custref_Code=customer_reference.custref_code and customer.Customer_Code='" + cus + "' " + ms + " " + cs + " " + riqi + " " + po + " " + inv + " " + wh_code + " " + sl + " order by RECEIVED_date desc";
    Class.forName(str);

    try{
    Connection conn=java.sql.DriverManager.getConnection(dri,tabname,tabword);
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    ResultSet res=stmt.executeQuery(sql);
    while(res.next()){
    Vector innerV1 = new Vector();
    for(int i=1;i<=title.length;i++){
    innerV1.add(res.getString(i));
    }
    outerV.add(innerV1);
    }

    conn.close();
    stmt.close();
    res.close();
    }
    catch(Exception e){} WritableWorkbook workbook;
    try
    {

    OutputStream os=new FileOutputStream(targetfile); 
    workbook=Workbook.createWorkbook(os); 



    WritableSheet sheet = workbook.createSheet(worksheet, 0); //添加第一个工作表


    jxl.write.Label label;
    for (int i=0; i<title.length; i++)
    {
    label = new jxl.write.Label(i, 0, title[i]); //put the title in row1 
    sheet.addCell(label); 
    }

    Vector innerV; //对象类
    String attrib; //对象属性

    jxl.write.Label content;
    for (int i=0; i<outerV.size(); i++)
    {
    innerV = (Vector)outerV.get(i);

    for (int j=0; j<innerV.size(); j++)
    {
    attrib = (String)innerV.get(j);
    content = new jxl.write.Label(j, i+1, attrib); //put the data content in excel file 
    sheet.addCell(content);
    }
    }



    workbook.write(); 
    workbook.close();
        os.close();


    }
    catch(Exception e) 

    e.printStackTrace(); 

    %>
    </p>
    <form name="form1" method="post" action="test_excel_s.jsp?m=<%=m%>">
      <CENTER><input type="submit" name="Submit" value="关闭" onClick="wclose()">
      </CENTER>
    </form>
    <p>&nbsp;</p>
    </body>
    </html>