2013-04-25 3 views
0

Я использую веб-сервер Apache Tomcat 5.5 (который я очень новичок) на Windows Server.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 на седьмой версии на данный момент, похоже, что вы как-то потерялись во времени. –

+0

У меня нет контроля над версией Tomcat, которую я должен использовать :( –

+0

Опубликуйте свой код, не заставляйте нас искать его. –

ответ

0

Итак, после многих испытаний, похоже, проблема заключалась в том, что Tomcat по какой-то причине кешировал мои файлы классов и не всегда служил мне самой новой. Когда я перезапустил службу Tomcat, она работала без каких-либо проблем.

Редактировать: Я бы отметил это как ответ, но не могу на 2 дня.

1

Введенный вами HRCapture не имеет объявленного пакета.

Простое копирование файла .class в данный каталог в каталоге классов не помещается в этот пакет. Вы должны добавить объявление пакета в java-файл (и поместить его в правый каталог в исходное дерево) и скомпилировать его снова и поместить в нужное место в каталоге классов.

Конечно, предполагается, что вы не просто опустили декларацию пакета из своего образца кода.

+0

У меня был пакет package edu.usf.cse.uguard; 'в моем коде раньше, что не имело никакого значения, поэтому я попытался скомпилировать его без объявления пакета в случае, если это было проблемой, и это не имело никакого значения. Итак, вы правы, я не просто опустил его из образца кода, на самом деле у меня его нет. Я просто положил декларацию пакета туда, и это не имело значения :( –

Смежные вопросы