Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > JSP bean не пойму в чем проблема


Автор: triclosan 27.9.2006, 13:27
есть сервлет - 

Код

package hop;

import java.util.*;

public class UserData 
{
    String username;
    Vector<String> v;
    int count;
    
    public UserData() //Constructor!
    {
        v=new Vector<String>();    
    }
        
    public void addSubstance( String value )
    {
        v.add(value);
    }
    
    public void setUsername( String value )
    {
        username = value;
    }


    public String getUsername() { return username; }
    public int getCountSubstance() { return v.size(); }


}


в jsp - 

Код

<jsp:useBean id="user" class="hop.UserData" scope="page"/>
<jsp:setProperty name="user" property="*"/> 

Name: <%= user.getUsername() %><BR>
count: <%= user.getCountSubstance() %>


Метод getUsername работает, а getCountSubstance - 

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 20 in the jsp file: /reg/index.jsp
Generated servlet error:
The method getCountSubstance() is undefined for the type UserData



Написал прастенькую программку, использующую класс UserData, все работает  smile 

Код

import java.io.*;
import hop.UserData;

class Test
{
    public static void main(String[] args)  
    {
        UserData userobj = new UserData();
        System.out.println("Hello");
        
        userobj.addSubstance("CC");userobj.addSubstance("CC");userobj.addSubstance("CC");
        System.out.println(userobj.getCountSubstance());
    }

}

Автор: batigoal 27.9.2006, 15:59
Две гипотезы, обе кажутся мне самому неправильными smile
1) видны только методы, возвращающие String;
2) видны только поля, для которых выполняются согдашения об именах (getXxx, setXxx, имя поля xxx).

Очень сомнительно, конечно. Может, просто опечатка (например, русская "о" вместо английской), или класс-файл какой-нибудь не тот задеплоен? 

Автор: triclosan 27.9.2006, 17:14
2batigoal 
Спасибо за ответ, вроде бы разобрался я неправильно замапил сервлет. Но сейчас возникла другая проблема - как настроить Tomcat5.5 так что бы он не кешировал файлы в Tomcat/work, а собирал все при каждом запуске?

Автор: batigoal 27.9.2006, 17:21
Цитата(triclosan @  27.9.2006,  18:14 Найти цитируемый пост)
как настроить Tomcat5.5 так что бы он не кешировал файлы в Tomcat/work, а собирал все при каждом запуске? 

Какие именно файлы там кешируются?

Самый простой путь для меня - сделать ant-скрипт, который будет компилять, деплоить, рестартовать, вычищать, и делать чер-те что еще smile

Добавлено @ 17:23 
И главное - ты уверен, что файлы берутся именно из кэша?

Автор: y3u 27.9.2006, 17:29
проехали smile долго копался, тут уже разобрались

Автор: batigoal 27.9.2006, 17:38
y3u, ничего-ничего, не выключайся smile

Автор: triclosan 27.9.2006, 17:48
2 y3u
 smile сорри, конечно целый день сегодня голову ломал

Автор: triclosan 28.9.2006, 11:40
2batigoal

Добавляю новый метод, при обращении к нему выдает:

The method getSubstanceByNumber(int) is undefined for the type UserData

спасает только перезагрузка сервера... 


Автор: y3u 28.9.2006, 12:13
ну сервер не обязательно перезагружать, надо передеплоить отдельно взятое веб приложение, либо сказать том кету, чтобы перезагружал измененные классы, он должен это уметь...

Автор: batigoal 28.9.2006, 13:20
triclosan, как ты выполняешь деплой? Простым копированием?

Автор: triclosan 28.9.2006, 14:16
Цитата(batigoal @  28.9.2006,  13:20 Найти цитируемый пост)
как ты выполняешь деплой? Простым копированием?
 угу, если я правильно понял

Автор: batigoal 28.9.2006, 14:36
Цитата(triclosan @  28.9.2006,  15:16 Найти цитируемый пост)
 угу, если я правильно понял 

Лучше делать это либо через админскую страничку Томката, либо через Ант. Тогда он позаботится о правильной очистке кэша (я надеюсь).

Автор: y3u 28.9.2006, 16:43
так судя по ошибке дело не в кеше, а в том, что класслоадер не подгружает новую версию class файла. Я просто том кэтом давно не пользуюсь, в JBoss точно такая настройка в конфигах есть, чтобы обновлял...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)