Tenho um bean que está diretamente dentro da pasta WEB-INF/classes/; estou tentando importá-lo para uma página jsp com a diretiva page da seguinte maneira:
ao tentar chamar a página o servidor reporta o seguinte erro:
C:TomcatworkStandalonelocalhostfaqsupd_menu_jsp.java:42: cannot resolve symbol
symbol : class FaqBean
location: class org.apache.jsp.upd_menu_jsp
FaqBean faq = null;
Olham eu uso os Beans no diretorio web-inf/libnão sei se funciona no /classes sem nenhuma alteração no server.
tente mudar o diretorio. Esse FaqBEan esta dentro de algum pacote? Não tenho certeza mas a versão 1.4.1 só aceita beans se eles estiverem dentro de pacotes.
tente verificar isso que eu te falei e dê um retorno.
Espero ter ajudado.
Bani
É, eu já tive um problema desses de não funcionar um bean que estava solto, e aí quando coloquei dentro de um pacote parou de dar erro.
Porém mantive-o no classes mesmo (dentro do dir do pacote).
R
Roberto_C_Todorovski
Criei uma pasta chamada “beans” dentro da pasta “classes” e coloquei a instrução:
import beans.*;
no código, mesmo assim continuou a ocorrer o erro:
C:TomcatwebappsfaqsWEB-INFclassesFaqRepository.java:51: cannot access beans.FaqBean
bad class file: .eansFaqBean.class
class file contains wrong class: FaqBean
Please remove or make sure it appears in the correct subdirectory of the classpath.
private FaqBean makeFaq(ResultSet results)
P.S.? Qual a diferença existente entre a instrução “import” e a instrução “package”?
Bani
As classes que estão dentro do diretório beans tem que começar com a linha:
package beans;
O import seriam para classes que não estão dentro deste diretório (caso você ainda tenha deixado alguma fora) e estejam utilizando classes dele.
A diferença é que a package está declarando em qual pacote (diretório) está a classe daquele arquivo que você está escrevendo. E a import é para “pegar” as classes que estão em outro pacotes, de forma que a sua classe consiga encontrá-las.
R
Roberto_C_Todorovski
No aplicativo que eu estou tentando desenvolver também tenho alguns servlets e classes comuns do java; posso, devo ou não posso colocar tudo em um único pacote?
Bani
Os pacotes são utilizados para deixar seus aplicativos mais organizadinhos. Dependendo do número de classes que você tiver, colocar tudo em um único pacote não é a forma mais organizada possível, mas sempre é melhor que nada.
Normalmente você tem seu pacote principal, e dentro dele os subpacotes.
Mas o que é do Java, ou libs externas, em geral você mantém dentro de seus respectivos pacotes e coloca o jar de cada uma em um diretório de libs, acessível pelo classpath.
R
Roberto_C_Todorovski
Por que ocorre um erro de compilação na classe command quando tento colocá-la no mesmo pacote da classe CommandException, enquanto que a classe CommandException compila normalmente?
public interface Command {
public String execute(HttpServletRequest req)
throws CommandException;
}
C:TomcatwebappsROOTWEB-INFclassesCommand.java:8: cannot resolve symbol
symbol : class CommandException
location: interface com.teste.Command
throws CommandException;
^
P.S: se eu tirar a linha que define o pacote as duas compilam normalmente.