JSP が servlet1 を呼び出すアプリケーションを実行しています。この servlet1 は内部的に servlet2 を呼び出してデータをフェッチします。サーブレット 1 は独自にいくつかのデータを計算し、サーブレット 2 からいくつかのデータを取得して JSP に送り返します。
しかし、私は次のエラーが発生しています:
HTTP ステータス 500 -
タイプ例外レポート
メッセージ
サーバーで内部エラー () が発生したため、この要求を実行できませんでした。
例外
java.lang.IllegalStateException: 応答がコミットされた後に転送できません.java:847)
note 根本原因の完全なスタック トレースは、Apache Tomcat/7.0.16 ログで入手できます。
私のコードは次のように書かれています:
import java.awt.List;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashSet;
import org.w3c.dom.Element;
//import javax.lang.model.element.Element;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.text.Document;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import java.io.File;
import java.util.ArrayList;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashSet;
//import com.sun.xml.internal.bind.v2.schemagen.xmlschema.List;
public class RoutingParser extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
System.out.println("Routing Parser is accessible");
System.out.println("i reached servlet");
try {
ArrayList inputlist1= new ArrayList();
inputlist1.add(request.getParameter("CardNetwork"));//CardNetwork
inputlist1.add(request.getParameter("Currency"));//Currency
inputlist1.add(request.getParameter("TxnCategory"));//TxnCategory
inputlist1.add(request.getParameter("TxnType"));//TxnType
ArrayList list1=new ArrayList();
ArrayList returnedData= new ArrayList();
System.out.println("i reached servlet");
try {
File fXmlFile = new File("c:\\eclipse\\RoutingTable.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
org.w3c.dom.Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("Entry");
System.out.println("-----------------------");
for (int temp = 0; temp < nList.getLength(); temp++)
{
//some piece of code
returnedData.add(data1);
returnedData.add(extra_info);
break;
}
}
/*it is important to remove the earlier node elements as the comparison starts from 0 all the time, we make a purely fresh arraylist for every node
* if we dont remove, the arraylist will keep on adding elements to the end and the comparison will not be made with latest node elements.
*/
for (int remove = 0; remove < 26; remove++){
list1.remove(0);
}
}
//this will be returned to JSP page
ServletContext context = this.getServletContext();
RequestDispatcher dispatcher = context.getRequestDispatcher("/Mid");
// change your request and response accordingly
dispatcher.forward(request, response);
request.setAttribute("returndata",returnedData);
System.out.println("data1 set in arraylist for JSP page is: "+ returnedData.get(0));
System.out.println("extra_info set in arraylist for JSP page is: "+ returnedData.get(1));
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("array list in end is: " + list1);
} finally {
RequestDispatcher requestDispatcher = getServletContext().getRequestDispatcher("/show_result_combination_2.jsp");
requestDispatcher.forward(request,response);
}
}
private static String getTagValue(String sTag, Element eElement) {
NodeList nlList = (eElement).getElementsByTagName(sTag).item(0).getChildNodes();
Node nValue = (Node) nlList.item(0);
return nValue.getNodeValue();
}
}
このエラーを解決するのを手伝ってください。
前もって感謝します。