【发布时间】:2017-02-13 03:13:15
【问题描述】:
我已经搜索了答案,但我得到了相关的答案。即使我的例外并不新鲜,但我无法找到答案。我遇到了一个异常,服务器遇到了一个内部错误,导致它无法完成这个
request.Exception:java.lang.NullPointerException
com.src.pkg.DepositServlet.doPost(DepositServlet.java:82)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
注意 Apache Tomcat/7.0.37 日志中提供了根本原因的完整堆栈跟踪。
我也会发送我的代码。它指向 DepositServlet 的 doPost() 方法,它也向下面的行显示错误- 语句 st = ((java.sql.Connection) con).createStatement(); 请帮我解决这个问题。
//DepositServlet.java
package com.src.pkg;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.sun.corba.se.pept.transport.Connection;
/**
* Servlet implementation class DepositServlet
*/
public class DepositServlet extends HttpServlet {
Connection con;
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
con=(Connection) DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","rekha");
}
catch(ClassNotFoundException e)
{
System.out.println(e);
}
catch(SQLException e)
{
System.out.println(e);
}
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
try
{
con.close();
}
catch(Exception e)
{
System.out.println(e);
}
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
int ano = Integer.parseInt(request.getParameter("accno"));
float amt = Float.parseFloat(request.getParameter("amount"));
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
try
{
Statement st = ((java.sql.Connection) con).createStatement();
int n = st.executeUpdate("update account set balance = balance + "+amt+" where accno = "+ano);
if(n==1)
{
out.println("<body bgcolor=green>");
out.println("<h1> Successfully deposited </h1>");
}
if(n==0)
{
out.println("<body bgcolor=wheat>");
out.println("<h1> Wrong a/c no </h1>");
}
st.close();
}
catch(SQLException e)
{
out.println("<body bgcolor=red>");
out.println("<h1> Server problem </h1>");
}
out.println("</body>");
out.println("</html>");
out.close();
}
}
//web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<welcome-file-list>
<welcome-file>deposit.html</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>DepositServlet</servlet-name>
<servlet-class>com.src.pkg.DepositServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DepositServlet</servlet-name>
<url-pattern>/DepositServlet</url-pattern>
</servlet-mapping>
</web-app>
//deposit.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body bgcolor="cyan">
<center>
<h1> Deposit screen</h1>
<form action = "./DepositServlet" method = "post">
A/C No <input type="text" name="accno"> <br> <br>
Amount <input type="text" name="amount"> <br> <br>
<input type="submit" value="deposit">
</form>
</center>
</body>
</html>
【问题讨论】:
-
com.sun.corba.se.pept.transport.Connection 不是您正在寻找的连接 - 您想要 java.sql.Connection