Tomcat + Bean

7 respostas
E

Dai Galera,

Não estou conseguindo acessar um bean através de uma pagina JSP, coloquei o bean dentro do …/web-inf/classes e ele não acha, quando tento acessar a pagina me reporta do erro:
[color=“orange”]
C:Arquivos de programasApache GroupTomcat 4.1workStandalonelocalhostmetalindex_jsp.java:45: cannot resolve symbol
symbol : class Bean
location: class org.apache.jsp.index_jsp
Bean TBean = null;
[/color]

estou usando o tomcat 4.1.12

faloooo
:wink:

7 Respostas

D

Everton,
Manda o código do seu JSP e do Bean (se não for muito grande).
Você colocou o Bean compilado dentro da pasta classes?
Vai ser mais fácil ajudar com o código.

[]

E

Segue o codigo do Bean

public class Bean {
	private int cod;
	private String nome;
	
	public void bean() {}
	
	public void setCodigo(int codigo) {
		this.cod = codigo;
	}
	
	public void setNome(String anm) {
		this.nome = anm;
	}
	
	public int getCodigo() {
		return this.cod;
	}
	
	public String getNome() {
		return this.nome;
	}
}

O JSP:

[color=“blue”]<html>
<head>
<meta http-equiv=“Content-Type” content=“text/html; charset=iso-8859-1”>

<jsp:useBean id=“TBean” scope=“session” class=“Bean”/>

</head>
<body>
<H1>Ola !!!</H1>

<%

out.println(Ola em JSP!);

%>

</body>
</html>[/color]

Coisa basica, que estou testando esta versão do tomcat, nao versão 3.2.1 rodava normal…

Até

:wink:

E

ahhhhh, :oops:

Quanto as classes, esta lá certinho …

D

Esse método da sua classe Bean serve para que?

[color=“red”]public void bean() {}[/color]

Não houve erro? Não deveria ser o construtor:
[color=“red”]public Bean() {}[/color]

Mudei isso e coloquei ela dentro de um pacote.
pacote:

[color=red]package com;[/color]

public class Bean {

private int cod;

private String nome;

[color=red]public Bean() { }[/color]

public void setCodigo(int codigo) { this.cod = codigo; }

public void setNome(String anm) { this.nome = anm; }

public int getCodigo() { return this.cod; }

public String getNome() { return this.nome; }

}

Compilei e coloquei o Bean.class dentro do diretório ‘WEB-INFclassescom’

No JSP coloquei a Tag:

<jsp:useBean id=“TBean” class=“com.Bean” scope=“session”/>

fiz ainda um teste no meio do JSP:

<%= TBean.getCodigo() %>

… stop Tomcat… Start… funcionou normal.
Tente colocar um construtor padrão no seu Bean e colocá-lo dentro de um pacote padrão (por exemplo ‘com.Everton’).

[]s

Paulo_Silveira

eh, ta errado ai, ele quis declarar construtor e declarou um metodo

alias, voce pode, em ajva, ter um metodo com nome da classe, retornando void: nao vai ser um construtor, erro classico das pessoas!

mas me parece que o erro nao esta ai, pq isso ai compila e tem o default constructor. deve ser mesmo na hierarquia de pacote e tal!

D

Pois é Paulo! Estava dando uma olhada e também achei que o erro poderia ser na hierarquia do pacote. Mas não sei o porque.
Uma classe sem construtor padrão, tem um construtor padrão criado implicitamente que chama o construtor padrão da sua superclasse (no caso, aqui, a classe java.lang.Object).
Até aí tudo bem pois a classe Bean teria seu construtor implícito criado e tudo funcionaria ok.
Fiz um outro teste e verifiquei que somente quando coloco a classe Bean dentro de um pacote (pode ser o um pacote mínimo, por exemplo ‘com’) o JSP funciona.
Entendi bem isso, mas não sei o porque… :frowning:
Poderia me explicar? Isso acontece em todos os AppServers?

[]s

E

Agora deu certo,

O problema não era o construtor, é pq o bean tem que estar dentro de uma package, so fiz isto dai deu certo …

Falooo galera

Muito Obrigado …

Até + :stuck_out_tongue:
:wink:

Criado 29 de outubro de 2002
Ultima resposta 29 de out. de 2002
Respostas 7
Participantes 3