2013-04-25 49 views
0

我在Windows Server上使用Apache Tomcat 5.5 Web服務器(我很新)。JSP構造函數不可見

我已經寫了一個名爲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 \ 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) 
     { 
     } 
    } 
%> 

然而,當我去的網頁,我得到一個錯誤,指出 「構造HRCapture()是不可見「,即使我已經將構造函數設置爲在HRCapture類中公開。上線時出現此錯誤在那裏我有HRCapture hrc = new HRCapture();

我曾經嘗試都: 「edu.usf.cse.uguard *」 <%@頁面進口=%>和<%@頁面進口=「edu.usf.cse .uguard.HRCapture「%>和我得到相同的結果...

我的導入語句不正確嗎?我搞砸了一些構造函數嗎?

任何幫助,將不勝感激!

+0

那麼,Apache目前在版本7上,看起來像你在某種程度上失去了時間。 – 2013-04-25 22:21:35

+0

我無法控制我需要使用哪個版本的Tomcat:( – 2013-04-25 22:22:38

+0

發佈你的代碼,不要讓我們去找它 – 2013-04-25 22:22:40

回答

0

因此經過大量測試後,看起來問題在於Tomcat因爲某種原因緩存了我的類文件,而且始終沒有爲我提供最新的文件。當我重新啓動Tomcat服務時,它沒有任何問題。

編輯:我會將此標記爲答案,但我不能2天。

1

您粘貼的HRCapture沒有聲明包。

僅將.class文件複製到classes目錄中的給定目錄不會將其放入該包中。您應該向java文件添加一個包聲明(並將其放在源代碼樹中的正確目錄中),然後再次編譯並將其放在classes目錄中的正確位置。

當然,這裏假定您不是隻是從代碼示例中省略包聲明。

+0

我在之前的代碼中包含了'package edu.usf.cse.uguard;',這沒有什麼區別,所以我試着在沒有包聲明的情況下編譯它,以防出現問題並且沒有任何區別。所以你是對的,我不只是從代碼示例中省略它,我實際上並沒有將它放在那裏。 我只是把包聲明回到那裏,它沒有區別:( – 2013-04-25 23:10:17

相關問題