JSP构造函数不可见

时间:2013-04-25 22:13:46

标签: java jsp tomcat

我在Windows服务器上使用Apache Tomcat 5.5 Web服务器(我很新)。

我写了一个名为HRCapture的类,其中有一个名为HR的类:

package edu.usf.cse.uguard;
import java.util.*;

 public class HRCapture
{
    class HR
    {
        int heartRate;
        Date timeStamp;

        HR (int hr, Date ts)
        {
            heartRate = hr;
            timeStamp = ts;
        }

        HR()
        {

        }
    }
    public HRCapture()
    {
        user = "";
        activity = "";
        typeOfTravel = "";
    }
    public void newHR(int hr, Date ts)
    {
        hrArray.add( new HR(hr, ts));
    }
    public String user, activity, typeOfTravel;
    private ArrayList<HR> hrArray = new ArrayList<HR>();
    double longitude = 0.0;
    double latitude = 0.0;  
}

我用javac编译了它(它给了我“HRCapture.class”和“HRCapture $ HR.class”),我把它放进去:“C:\ Program Files \ Apache Software Foundatioin \ Tomcat5.5 \ webapps \ ROOT \ WEB-INF \类\ EDU \ USF \ CSE \ uguard”。

在另一个文件中,我正在尝试初始化HRCapture类型的变量:

<%@ page language="java" %>
<%@ page import="edu.usf.cse.uguard.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="org.json.simple.JSONObject" %>
<%@ page import="org.json.JSONArray" %>
<%@ page import="java.util.*" %>
<%@ page import="com.google.gson.*" %>
<%@ page import="com.google.gson.Gson" %>

<%
    HRCapture hrc = new HRCapture();
    if (request.getParameter("id") == null)
    {
    }
    else
    {
        String input = request.getParameter("id");
        Gson gson = new Gson();
        try
        {
            //hrc = gson.fromJson(input , HRCapture.class);
            //out.println(input);
            out.println("Success");
        }
        catch (JsonSyntaxException ex)
        {
        }
        catch (JsonParseException ex)
        {
        }
        catch (Exception e)
        {
        }
    }
%>

然而,当我进入网页时,我收到错误的说法 “构造函数HRCapture()不可见”,即使我在HRCapture类中将构造函数设置为public。此错误发生在我有HRCapture hrc = new HRCapture();

的行

我试过了两个:&lt;%@ page import =“edu.usf.cse.uguard。*”%&gt;和&lt;%@ page import =“edu.usf.cse.uguard.HRCapture”%&gt;我得到了同样的结果......

我的导入声明不正确吗?我搞砸了构造函数了吗?

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

您粘贴的HRCapture没有宣布包裹。

将.class文件复制到classes目录中的给定目录并不会将其放入该包中。您应该将包声明添加到java文件中(并将其放在源树中的正确目录中)并再次编译它并将其放在classes目录中的正确位置。

当然,这假设您没有从代码示例中省略软件包声明。

答案 1 :(得分:0)

因此经过大量测试后,问题似乎是Tomcat因为某些原因而缓存了我的类文件,并且总是没有为我提供最新的文件。当我重新启动Tomcat服务时,它没有任何问题。

编辑:我会将此标记为答案,但我不能连续2天。