Forums

This topic is locked

java.lang.NullPointerException java.io.File.<init>(File.java:194)

Posted 29 Jan 2009 13:37:15
1
has voted
29 Jan 2009 13:37:15 anju mol posted:
am getting the following error


HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)


root cause

java.lang.NullPointerException
java.io.File.<init>(File.java:194)
org.apache.jsp.testUpload_jsp._jspService(testUpload_jsp.java:328)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)


note The full stack trace of the root cause is available in the Tomcat logs.

My jsp files are
DbBlobFile.jsp

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN">

<html>
<%@ page import="java.io.*"%>
<%@ page import="java.lang.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="oracle.jdbc.driver.*"%>
<%@ page import="oracle.sql.*"%>
<%! String inputBinaryFileName = null;%>
<%! File inputBinaryFile = null;%>
<%! String filename = null,sqlText=null;%>
<%! String outputBinaryFileName1 = null;%>
<%! File outputBinaryFile1= null;%>
<%! int position,chunkSize,bytesRead=0,bytesWritten=0,totbytesRead= 0,totbytesWritten=0;%>
<%! long blobLength;%>
<%! Connection conn=null;%>

<html>
<head>


File Attachment and Detachment Details


<style>
.font_appr
{
font-family: "Trebuchet MS", Trebuchet, Verdana, Helvetica, Arial, sans-serif;
font-size: 12px;
}



.progress-bar
{ /*border: 1px solid #56577A; */
/*width of the progress bar container*/
width: 100px;
margin: 5px;
padding: 1px;
background: #fff;
visibility: hidden;

}


.bar
{
height: 15px;
font-size: 11px;
/* indent the text off the screen as we don’t want to see the text anymore.*/
text-indent:-9000px;
}

</style>

<script type="text/javascript">

var count=0;

function busy()
{
var d=document.getElementById("bx_attachPurpose";
d.style.visibility="hidden";
//d.style.position="absolute";
//d.style.background="#DDFF33";
//d.style.opacity="40";
document.body.innerHTML+="<div id='sp1' style='position:absolute;top:0;left:0;width:100%;height:100%;background:#000000;filter:alpha(opacity=40);' for = 'sp1' >";
document.body.innerHTML+="

<label id='loading' style='position:absolute;top:0;left:435;background-color: FFFF66; width:115;height:30' >[size=4]Processing...</font></label>

";
document.body.innerHTML+="</div>";
}

/*function cursor_wait()
{
document.body.style.cursor = 'wait';
}

function cursor_clear()
{
document.body.style.cursor = 'default';
}
*/



function generateRow()
{
if(count!=1)
{

var d=document.getElementById("div1";

d.innerHTML+="<label id='file2_label' style='position:absolute;top:240;left:35;width:131;height:18' for = 'label_file2' >File</label>";
d.innerHTML+="<input type=file name='txt_file' id='txt_file2' style='position:absolute;top:240;left:142;width:231;height:19'>";
d.innerHTML+="<input type='text' name='txt_fsd2' id='txt_fsd2' style='position:absolute;top:240;left:515;width:221;height:19'>";
d.innerHTML+="<label id='fsd1_label' style='position:absolute;top:240;left:405;width:131;height:18' for = 'label_fsd2' >File Description</label>";
d.innerHTML+="<input type=button name='btn_del' id='btn_del2' style='position:absolute;top:240;left:765;width:71;height:19' value='Delete' >";

d.innerHTML+="<label id='file3_label' style='position:absolute;top:280;left:35;width:131;height:18' for = 'label_file3' >File</label>";
d.innerHTML+="<input type=file name='txt_file' id='txt_file3' style='position:absolute;top:280;left:142;width:231;height:19'>";
d.innerHTML+="<input type='text' name='txt_fsd3' id='txt_fsd3' style='position:absolute;top:280;left:515;width:221;height:19'>";
d.innerHTML+="<label id='fsd3_label' style='position:absolute;top:280;left:405;width:131;height:18' for = 'label_fsd3' >File Description</label>";
d.innerHTML+="<input type=button name='btn_del' id='btn_del3' style='position:absolute;top:280;left:765;width:71;height:19' value='Delete' >";

d.innerHTML+="<label id='file2_labe4' style='position:absolute;top:320;left:35;width:131;height:18' for = 'label_file4' >File</label>";
d.innerHTML+="<input type=file name='txt_file' id='txt_file4' style='position:absolute;top:320;left:142;width:231;height:19'>";
d.innerHTML+="<input type='text' name='txt_fsd4' id='txt_fsd1' style='position:absolute;top:320;left:515;width:221;height:19'>";
d.innerHTML+="<label id='fsd4_label' style='position:absolute;top:320;left:405;width:131;height:18' for = 'label_fsd4' >File Description</label>";
d.innerHTML+="<input type=button name='btn_del' id='btn_del4' style='position:absolute;top:320;left:765;width:71;height:19' value='Delete' >";

d.innerHTML+="<label id='file5_label' style='position:absolute;top:360;left:35;width:131;height:18' for = 'label_file5' >File</label>";
d.innerHTML+="<input type=file name='txt_file' id='txt_file5' style='position:absolute;top:360;left:142;width:231;height:19'>";
d.innerHTML+="<input type='text' name='txt_fsd5' id='txt_fsd5' style='position:absolute;top:360;left:515;width:221;height:19'>";
d.innerHTML+="<label id='fsd5_label' style='position:absolute;top:360;left:405;width:131;height:18' for = 'label_fsd5' >File Description</label>";
d.innerHTML+="<input type=button name='btn_del' id='btn_del5' style='position:absolute;top:360;left:765;width:71;height:19' value='Delete' >";

count++;
}
}

/*
function sel_none()
{
for(var i=0;i<5;i++)
f.chk[i].checked=false;

}
function initialize()
{
var chks = document.getElementsByName('chk');
for(var i=0;i<5;i++)
{
var flag1=0;
if(chks[i].checked)
{

divId = 'sample'+i;
document.getElementById('prgrs'+i).style.visibility = 'visible';

var thedivId = document.getElementById( divId);

thedivId.style.backgroundColor="green";

brim(divId,0,'status'+i);
chks[i].checked=false;
var flag1=1;
}
}
}

function brim(Id,start,status)
{
if (document.getElementById)
{
o = document.getElementById(Id);
if(start <= 100)
{
if(start==100)
start=0;

setWidth(o, start); start += 1;
document.getElementById(status).innerHTML = "Uploading...";
window.setTimeout("brim('"+Id+"',"+start+",'"+status+"')",10);
}
else
document.getElementById(status).innerHTML = "Uploaded";
}}
function setWidth(o, start)
{ o.style.width = start;

}
function sel_all()
{
for(var i=0;i<5;i++)
f.chk[i].checked=true;
}
*/
function cr_time()
{
var myObject, f, date;
myObject = new ActiveXObject("Scripting.FileSystemObject";
f = myObject.GetFile(inputBinaryFileName);
date = f.DateCreated;
document.hiddenTextBox.value = date;
}
function fn()
{
alert("hai1";
form1.action="testUpload.jsp";

alert("hai2";
}
</script>
</head>
<body class="font_appr">
<form name="form1" id="f" method="post">

<div id="div1">


<label id="attachPurpose_label" style="position:absolute;top:80;left:35;width:131;height:17" for = "label_attachPurpose" >Attach Purpose</label>
<select name="bx_attachPurpose" id="bx_attachPurpose" style="position:Absolute;top:80;left:142;width:145;height:17">
<option value="" id="" selected > </option><option value="1" id="1"> Online </option>
<option value="2" id="2"> Offline </option></select>

<!--input type="radio" name="att_pur" id="online_rd" style="position:absolute;top:80;left:112;width:131;height:18" value="" >
<label id="online_label" style="position:absolute;top:80;left:185;width:131;height:17" for = "label_online">Online</label>
<input type="radio" name="att_pur" id="offline_rd" style="position:absolute;top:80;left:170;width:131;height:18"value="" >
<label id="offline_label" style="position:absolute;top:80;left:243;width:131;height:17" for = "label_offline">Offline</label-->

<!--input type="radio" id="online_rd" name="att_pur" style="position:absolute;top:79;left:167;" value="" >
<label id="online_label" style="position:absolute;top:80;left:185;width:131;height:17" for = "label_online">Online</label>
<input type="radio" name="att_pur"id="offline_rd" value="" style="position:absolute;top:79;left:225;">
<label id="offline_label" style="position:absolute;top:80;left:243;width:131;height:17" for = "label_offline">Offline</label-->



<label id="alertID_label" style="position:absolute;top:80;left:495;width:131;height:18" for = "alert_caseID" >AlertID</label>
<input type="text" name="txt_alertID" id="txt_alertID" style="position:absolute;top:80;left:555;width:131;height:19">

<label id="caseID_label" style="position:absolute;top:120;left:35;width:131;height:18" for = "label_caseID" >CaseID</label>
<input type="file" name="txt_caseID" id="txt_caseID" style="position:absolute;top:120;left:142;width:231;height:19">

<label id="file1_label" style="position:absolute;top:200;left:35;width:131;height:18" for = "label_file1" >File</label>
<input type="file" name="txt_file" id="txt_file1" style="position:absolute;top:200;left:142;width:231;height:19">

<label id="fsd1_label" style="position:absolute;top:200;left:405;width:131;height:18" for = "label_fsd1" >File Description</label>
<input type="text" name="txt_fsd" id="txt_fsd1" style="position:absolute;top:200;left:515;width:221;height:19">

<input type="button" name="btn_del" id="btn_del1" style="position:absolute;top:200;left:765;width:71;height:19" value="Delete" >

<input type="submit" name="btn_att" id="btn_att" style="position:absolute;top:30;left:765;width:71;height:19" value="Attach" onclick="fn()" >

<input type="button" name="btn_more" id="btn_more" style="position:absolute;top:30;left:845;width:71;height:19" value="More" onclick="generateRow(); cursor_wait();">

<input type="hidden" name="hiddenTextBox">
</div>
</form>
</body>
</html>


and


testUpload.jsp

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN">
<%@ page import="java.io.*"%>
<%@ page import="java.io.File"%>
<%@ page import="java.lang.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="oracle.jdbc.driver.*"%>
<%@ page import="oracle.sql.*"%>
<%@ page import="java.util.Date"%>
<%!String inputBinaryFileName = null;%>
<%!File inputBinaryFile = null;%>
<%!String filename = null,sqlText=null;%>
<%!String outputBinaryFileName1 = null;%>
<%!File outputBinaryFile1= null;%>
<%!int position,chunkSize,bytesRead=0,bytesWritten=0,totbytesRead= 0,totbytesWritten=0,l=0,i=0;%>
<%!long blobLength,size;%>

<html>
<head>


File Attachment and Detachment Details


<style>
.font_appr
{
font-family: "Trebuchet MS", Trebuchet, Verdana, Helvetica, Arial, sans-serif;
font-size: 12px;
}


.progress-bar
{ /*border: 1px solid #56577A; */
/*width of the progress bar container*/
width: 100px;
margin: 5px;
padding: 1px;
background: #fff;
visibility: hidden;

}


.bar
{
height: 15px;
font-size: 11px;
/* indent the text off the screen as we don’t want to see the text anymore.*/
text-indent:-9000px;
}
</style>

<script type="text/javascript">

var count=0;

function busy()
{
var d=document.getElementById("bx_attachPurpose";
d.style.visibility="hidden";
document.body.innerHTML+="<div id='sp1' style='position:absolute;top:0;left:0;width:100%;height:100%;background:#000000;filter:alpha(opacity=40);' for = 'sp1' >";
document.body.innerHTML+="

<label id='loading' style='position:absolute;top:0;left:435;background-color: FFFF66; width:115;height:30' >[size=4]Processing...</font></label>

";
document.body.innerHTML+="</div>";
}



function generateRow()
{
if(count!=1)
{

var d=document.getElementById("div1";

d.innerHTML+="<label id='file2_label' style='position:absolute;top:240;left:35;width:131;height:18' for = 'label_file2' >File</label>";
d.innerHTML+="<input type=file name='txt_file2' id='txt_file2' style='position:absolute;top:240;left:142;width:231;height:19'>";
d.innerHTML+="<input type='text' name='txt_fsd2' id='txt_fsd2' style='position:absolute;top:240;left:515;width:221;height:19'>";
d.innerHTML+="<label id='fsd1_label' style='position:absolute;top:240;left:405;width:131;height:18' for = 'label_fsd2' >File Description</label>";
d.innerHTML+="<input type=button name='btn_del' id='btn_del2' style='position:absolute;top:240;left:765;width:71;height:19' value='Delete' >";

d.innerHTML+="<label id='file3_label' style='position:absolute;top:280;left:35;width:131;height:18' for = 'label_file3' >File</label>";
d.innerHTML+="<input type=file name='txt_file3' id='txt_file3' style='position:absolute;top:280;left:142;width:231;height:19'>";
d.innerHTML+="<input type='text' name='txt_fsd3' id='txt_fsd3' style='position:absolute;top:280;left:515;width:221;height:19'>";
d.innerHTML+="<label id='fsd3_label' style='position:absolute;top:280;left:405;width:131;height:18' for = 'label_fsd3' >File Description</label>";
d.innerHTML+="<input type=button name='btn_del' id='btn_del3' style='position:absolute;top:280;left:765;width:71;height:19' value='Delete' >";

d.innerHTML+="<label id='file2_labe4' style='position:absolute;top:320;left:35;width:131;height:18' for = 'label_file4' >File</label>";
d.innerHTML+="<input type=file name='txt_file4' id='txt_file4' style='position:absolute;top:320;left:142;width:231;height:19'>";
d.innerHTML+="<input type='text' name='txt_fsd4' id='txt_fsd1' style='position:absolute;top:320;left:515;width:221;height:19'>";
d.innerHTML+="<label id='fsd4_label' style='position:absolute;top:320;left:405;width:131;height:18' for = 'label_fsd4' >File Description</label>";
d.innerHTML+="<input type=button name='btn_del' id='btn_del4' style='position:absolute;top:320;left:765;width:71;height:19' value='Delete' >";

d.innerHTML+="<label id='file5_label' style='position:absolute;top:360;left:35;width:131;height:18' for = 'label_file5' >File</label>";
d.innerHTML+="<input type=file name='txt_file5' id='txt_file5' style='position:absolute;top:360;left:142;width:231;height:19'>";
d.innerHTML+="<input type='text' name='txt_fsd5' id='txt_fsd5' style='position:absolute;top:360;left:515;width:221;height:19'>";
d.innerHTML+="<label id='fsd5_label' style='position:absolute;top:360;left:405;width:131;height:18' for = 'label_fsd5' >File Description</label>";
d.innerHTML+="<input type=button name='btn_del' id='btn_del5' style='position:absolute;top:360;left:765;width:71;height:19' value='Delete' >";

count++;
}
}




</script>
</head>

<body bgcolor="white" class="font_appr" onload="busy()">

<%
try {
String connectionURL = null;
Connection conn = null;
Statement stmt=null;
ResultSet rset=null;
String driver_class = "oracle.jdbc.driver.OracleDriver";
Class.forName(driver_class).newInstance();
connectionURL = "jdbcracle:thin:@172.20.48.108:1521:V320DEV";
conn = DriverManager.getConnection(connectionURL, "scott","tiger";
FileInputStream inputFileInputStream = null;
BLOB file=null;
byte[] binaryBuffer;
FileOutputStream outputFileOutputStream=null;
stmt = conn.createStatement();
conn.setAutoCommit(false);
String entityid="SUR00000001";
String caseid=request.getParameter("txt_caseID";
// String caseid=null;
String docname="DOCNAME";
String docid="DOCID";
String status="STATUS";
String statuscode="STATUSCODE";
String refid="REFID";
String att_purp=request.getParameter("bx_attachPurpose";

String user="CREATED USER";
String text_fsd=null;
String type=null;
String date1="29-jan-2009";

for(i=1;i<=5;i++)
{

if(i==1)
{
inputBinaryFileName = request.getParameter("txt_file1";
text_fsd=request.getParameter("txt_fsd1";
}
if(i==2)
{
inputBinaryFileName = request.getParameter("txt_file2";
text_fsd=request.getParameter("txt_fsd2";
}
if(i==3)
{
inputBinaryFileName = request.getParameter("txt_file3";
text_fsd=request.getParameter("txt_fsd3";
}
if(i==4)
{
inputBinaryFileName = request.getParameter("txt_file4";
text_fsd=request.getParameter("txt_fsd4";
}
if(i==5)
{
inputBinaryFileName = request.getParameter("txt_file5";
text_fsd=request.getParameter("txt_fsd5";
}

//Retrieving Full path of file############################################

String f_path=inputBinaryFileName;



//Getting the size of the file#############################################

File f =new File(inputBinaryFileName);
size=f.length()/1024;
out.print(size);

//Retrieving the file name only############################################

l= inputBinaryFileName.lastIndexOf('\\');
filename= inputBinaryFileName.substring(l+1);

//Getting the File Type################################################

int index= filename.lastIndexOf('.');
type= inputBinaryFileName.substring(l+1);

//############################################################
inputBinaryFile = new File(inputBinaryFileName);
if (!inputBinaryFile.exists())
{
throw new IOException("File not found. " + inputBinaryFileName);
}
outputBinaryFileName1 = inputBinaryFileName + ".getBytes.out";



inputBinaryFile = new File(inputBinaryFileName);
inputFileInputStream = new FileInputStream(inputBinaryFile);

//Inserting into db################################################



sqlText = "INSERT INTO SUR_CASEDOCDTLS"+
"VALUES("+

" '" +entityid+ "', " +

" '" +caseid+ "', " +

" '" +docname+ "', " +

" '" +docid+ "', " +

" '" +statuscode+ "', " +

" '" +status+ "', " +

"EMPTY_BLOB(), " +

" '" +refid+ "', " +

" '" +i+ "', " +

" '" +size+ "', " +

" '" +user+ "', " +

" '" +att_purp+ "', " +

" '" +text_fsd+ "', " +

" '" +type+ "', " +

" '" +date1+ "', " +

" '" +inputBinaryFileName+ "', " +

" '" +filename+ "', " +

" '" +i+ "', " +

" SYSDATE " +

" )";

stmt.executeUpdate(sqlText);

sqlText ="SELECT CASEDOCUMENT FROM SUR_CASEDOCDTLS WHERE ID = "+i+" " +"FOR UPDATE";
rset = stmt.executeQuery(sqlText);
rset.next();
file = ((OracleResultSet) rset).getBLOB("CASEDOCUMENT";
chunkSize = file.getChunkSize();
binaryBuffer = new byte[chunkSize];

position = 1;
while ((bytesRead = inputFileInputStream.read(binaryBuffer)) != -1)
{

position += bytesRead;
totbytesRead += bytesRead;
totbytesWritten += bytesWritten;
}
inputFileInputStream.close();
conn.commit();
rset.close();
conn.close();



} //try closing here###############################
catch (IOException e)
{
out.println("Caught I/O Exception: (Write BLOB value - Stream Method).";
e.printStackTrace();
throw e;
}
catch (SQLException e)
{
out.println("Caught SQL Exception: (Write BLOB value - Stream Method).";
out.println("SQL:\n" + sqlText);
e.printStackTrace();
throw e;
}

%>


<div id="div1">


<label id="attachPurpose_label" style="position:absolute;top:80;left:35;width:131;height:17" for = "label_attachPurpose" >Attach Purpose</label>
<select name="bx_attachPurpose" id="bx_attachPurpose" style="position:absolute;top:80;left:142;width:145;height:17" >
<option value="" id="" selected ></option>
<option value="1" id="1"> Online</option>
<option value="2" id="2"> Offline</option>
</select>



<!--input type="radio" name="att_pur" id="online_rd" style="position:absolute;top:80;left:112;width:131;height:18" value="" >
<label id="online_label" style="position:absolute;top:80;left:185;width:131;height:17" for = "label_online">Online</label>
<input type="radio" name="att_pur" id="offline_rd" style="position:absolute;top:80;left:170;width:131;height:18"value="" >
<label id="offline_label" style="position:absolute;top:80;left:243;width:131;height:17" for = "label_offline">Offline</label-->

<!--input type="radio" id="online_rd" name="att_pur" style="position:absolute;top:79;left:167;" value="" >
<label id="online_label" style="position:absolute;top:80;left:185;width:131;height:17" for = "label_online">Online</label>
<input type="radio" name="att_pur"id="offline_rd" value="" style="position:absolute;top:79;left:225;">
<label id="offline_label" style="position:absolute;top:80;left:243;width:131;height:17" for = "label_offline">Offline</label-->



<label id="alertID_label" style="position:absolute;top:80;left:495;width:131;height:18" for = "alert_caseID" >AlertID</label>
<input type="text" name="txt_alertID" id="txt_alertID" style="position:absolute;top:80;left:555;width:131;height:19">

<label id="caseID_label" style="position:absolute;top:120;left:35;width:131;height:18" for = "label_caseID" >CaseID</label>
<input type="file" name="txt_caseID" id="txt_caseID" style="position:absolute;top:120;left:142;width:231;height:19">

<label id="file1_label" style="position:absolute;top:200;left:35;width:131;height:18" for = "label_file1" >File</label>
<input type="file" name="txt_file1" id="txt_file1" style="position:absolute;top:200;left:142;width:231;height:19">

<label id="fsd1_label" style="position:absolute;top:200;left:405;width:131;height:18" for = "label_fsd1" >File Description</label>
<input type="text" name="txt_fsd1" id="txt_fsd1" style="position:absolute;top:200;left:515;width:221;height:19">

<input type="button" name="btn_del" id="btn_del1" style="position:absolute;top:200;left:765;width:71;height:19" value="Delete" >

<input type="button" name="btn_att" id="btn_att" style="position:absolute;top:30;left:765;width:71;height:19" value="Attach" onclick=" busy();">

<input type="button" name="btn_more" id="btn_more" style="position:absolute;top:30;left:845;width:71;height:19" value="More" onclick="generateRow(); cursor_wait();">

<input type="hidden" name="hiddenTextBox">
</div>
</body>
</html>
Can anyone help me.......?[:0][:0][:0]
Thanks in advance.......

Edited by - on 29 Jan 2009 13:40:03

Reply to this topic