【发布时间】:2010-04-04 20:25:38
【问题描述】:
我已经在 Mandriva Linux 的 Tomcat 6 服务器上实现了一个 Servlet。我已经能够使客户端与 Servlet 进行通信。为了响应请求,Servlet 尝试实例化位于同一目录中的另一个类(名为 KalmanFilter)。 KalmanFilter 尝试创建四个矩阵(使用 Jama Matrix 包)。但是此时 Servlet 停止了,没有给出任何异常!
但是,从同一目录中的另一个测试代码中,我已经能够创建 KalmanFilter 类的实例,并继续进行而没有任何错误。仅当我的 Servlet 尝试实例化 KalmanFilter 类并创建矩阵时,才会出现此问题。任何想法?
以下是代码:
MyServlet.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class MyServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
doGet(request, response);
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException{
PrintWriter out = null; //response.getWriter();
try{
System.out.println("creating new KalmanFilter");
KalmanFilter filter = new KalmanFilter();
out = response.getWriter();
out.print("filter created");
}catch(Exception ex){
ex.printStackTrace();
System.out.println("Exception in doGet(): " + ex.getMessage());
ex.printStackTrace(out);
}
}
}
卡尔曼滤波器.java
import Jama.Matrix;
public class KalmanFilter {
protected Matrix X, X0;
protected Matrix F, Q;
//protected Matrix F, B, U, Q;
protected Matrix H, R;
protected Matrix P, P0;
private final double EPSILON = 0.001;
public KalmanFilter(){
System.out.println("from constructor of KalmanFilter");
createInitialMatrices();
}
private void createInitialMatrices(){
System.out.println("from KalmanFilter.createInitialMatrices()");
double[][] pVals = {
{1.0, 0.0},
{0.0, 1.0}
};
double[][] qVals = {
{EPSILON, EPSILON},
{EPSILON, EPSILON}
};
double[][] hVals = {
{1.0, 0.0},
{0.0, 1.0},
{1.0, 0.0},
{0.0, 1.0}
};
double[][] xVals = {
{0.0},
{0.0},
};
System.out.println("creating P Q H X matrices in createInitialMatrices()");
try{
this.P = new Matrix(pVals);
System.out.println("created P matrix in createInitialMatrices()");
this.Q = new Matrix(qVals);
System.out.println("created Q matrix in createInitialMatrices()");
this.H = new Matrix(hVals);
System.out.println("created H matrix in createInitialMatrices()");
this.X = new Matrix(xVals);
System.out.println("created X matrix in createInitialMatrices()");
System.out.println("created P Q H X matrices in createInitialMatrices()");
}catch(Exception e){
System.out.println("Exception from createInitialMatrices()"+ e.getMessage());
e.printStackTrace();
}
System.out.println("returning from createInitialMatrices()");
}
}
【问题讨论】:
-
你在哪里检查堆栈跟踪?您正在查看哪些 tomcat 日志文件?
-
我正在查看位于日志目录中的 catalina.out 文件。我应该去别的地方吗?
标签: java tomcat servlets tomcat6