0

Windows Server で 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 Foundation\Tomcat5.5\webapps\ROOT\WEB- INF\classes\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)
        {
        }
    }
%>

ただし、Web ページにアクセスすると、HRCapture クラス内でコンストラクターを public に設定しているにもかかわらず、「コンストラクター HRCapture() が表示されません」というエラーが表示されます。このエラーは、私が持っている行で発生しますHRCapture hrc = new HRCapture();

<%@ page import="edu.usf.cse.uguard.*" %> と <%@ page import="edu.usf.cse.uguard.HRCapture" %> の両方を試しましたが、同じ結果が得られました...

私のインポートステートメントは間違っていますか? コンストラクターをどうにかして台無しにしましたか?

どんな助けでも大歓迎です!

4

2 に答える 2

1

貼り付けた HRCapture にはパッケージが宣言されていません。

.class ファイルを classes ディレクトリ内の特定のディレクトリにコピーするだけでは、そのパッケージには入れられません。パッケージ宣言を Java ファイルに追加し (ソース ツリー内の適切なディレクトリに配置し)、再度コンパイルして、classes ディレクトリ内の適切な場所に配置する必要があります。

もちろん、これは、コード サンプルからパッケージ宣言を省略していないことを前提としています。

于 2013-04-25T23:02:22.023 に答える