Erro ao chamar classe no TomCat

7 respostas
Aganiuipuque

Galera, estou com um probleminha báaasico no tomCat.

Eu instalei o bichano e criei uma jsp simples. Funciounoou!

Despois eu criei uma classe Pessoa bem simples, só para testar…

Aí eu usei um scriptlet para chamar a bem dita:

<%Pessoa p=new Pessoa();%>

Agora esta dando erro!!!
Já revirei o web.xml e nada…
ja coloquei o arquivo .class em todas as pastas e nada…
Alguém poderia me ajudar?

Vejam o trace:

ype Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

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

An error occurred at line: 6 in the jsp file: /jsp/index.jsp

Generated servlet error:
[javac] Compiling 1 source file

C:\Tomcat 4.1\work\Standalone\localhost\laboratorio\jsp\index_jsp.java:59: cannot resolve symbol
symbol : class Pessoa
location: class org.apache.jsp.index_jsp
Pessoa p=new Pessoa();
^

An error occurred at line: 6 in the jsp file: /jsp/index.jsp

Generated servlet error:
C:\Tomcat 4.1\work\Standalone\localhost\laboratorio\jsp\index_jsp.java:59: cannot resolve symbol
symbol : class Pessoa
location: class org.apache.jsp.index_jsp
Pessoa p=new Pessoa();
^
2 errors

at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:248)
at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:315)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:328)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:427)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:142)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)

Apache Tomcat/4.1.31

7 Respostas

danieldestro

Você não deu import na classe Pessoa.

Aganiuipuque

Já fiz o import e nada…

tentei assim:

<%@ page language=“java” import=“laboratorio.jsp.*”%>

depois assim:

<%impor laboratorio.jsp.*;%>

E ainda nao consegui…

Veja a estrutura de pastas:

tom cat 4.1
|
webapps
|
laboratorio
|-----> imagens
|-----> jsp
|-----> WEB-INF
|---->classes
|---->lib
|---->sources

Na pasta .jsp estão todas a paginas jsp (é obvio)
Na pasta classes está a classe Pessoa compilada

Aqui está o web.xml que se encontra na pasta WEB-INF:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
PUBLIC “-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN”
http://java.sun.com/dtd/web-app_2_3.dtd”>

<web-app>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>
<taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>
<taglib-location>/WEB-INF/c-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/sql.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
<taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
<taglib-location>/WEB-INF/x.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>
<taglib-location>/WEB-INF/x-rt.tld</taglib-location>
</taglib>

</web-app>

E este é o arquivo server.xml que está na pasta conf do TomCat:

<?xml version='1.0' encoding='utf-8'?>
<Server className=“org.apache.catalina.core.StandardServer” debug=“0” port=“8005” shutdown=“SHUTDOWN”>

<Listener className=“org.apache.catalina.mbeans.ServerLifecycleListener” debug=“0” jsr77Names=“false”/>

<Listener className=“org.apache.catalina.mbeans.GlobalResourcesLifecycleListener” debug=“0”/>

<GlobalNamingResources>

<Environment name=“simpleValue” override=“true” type=“java.lang.Integer” value=“30”/>

<Resource auth=“Container” description=“User database that can be updated and saved” name=“UserDatabase” scope=“Shareable” type=“org.apache.catalina.UserDatabase”/>

<ResourceParams name=“UserDatabase”>

<parameter>

<name>factory</name>

<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>

</parameter>

<parameter>

<name>pathname</name>

<value>conf/tomcat-users.xml</value>

</parameter>

</ResourceParams>

</GlobalNamingResources>

<Service className=“org.apache.catalina.core.StandardService” debug=“0” name=“Tomcat-Standalone”>

<Connector className=“org.apache.coyote.tomcat4.CoyoteConnector” acceptCount=“100” allowTrace=“false” bufferSize=“2048” compression=“off” connectionLinger="-1" connectionTimeout=“20000” connectionUploadTimeout=“300000” debug=“0” disableUploadTimeout=“true” enableLookups=“true” maxKeepAliveRequests=“100” maxProcessors=“75” maxSpareProcessors=“5” minProcessors=“5” port=“8080” protocolHandlerClassName=“org.apache.coyote.http11.Http11Protocol” proxyPort=“0” redirectPort=“8443” scheme=“http” secure=“false” serverSocketTimeout=“0” tcpNoDelay=“true” tomcatAuthentication=“true” useBodyEncodingForURI=“true” useURIValidationHack=“false”>

<Factory className=“org.apache.catalina.net.DefaultServerSocketFactory”/>

</Connector>

<Connector className=“org.apache.coyote.tomcat4.CoyoteConnector” acceptCount=“10” allowTrace=“false” bufferSize=“2048” compression=“off” connectionLinger="-1" connectionTimeout=“20000” connectionUploadTimeout=“300000” debug=“0” disableUploadTimeout=“false” enableLookups=“true” maxKeepAliveRequests=“100” maxProcessors=“75” maxSpareProcessors=“5” minProcessors=“5” port=“8009” protocolHandlerClassName=“org.apache.jk.server.JkCoyoteHandler” proxyPort=“0” redirectPort=“8443” scheme=“http” secure=“false” serverSocketTimeout=“0” tcpNoDelay=“true” tomcatAuthentication=“true” useBodyEncodingForURI=“true” useURIValidationHack=“false”>

<Factory className=“org.apache.catalina.net.DefaultServerSocketFactory”/>

</Connector>

<Engine className=“org.apache.catalina.core.StandardEngine” debug=“0” defaultHost=“localhost” mapperClass=“org.apache.catalina.core.StandardEngineMapper” name=“Standalone”>

<Host className=“org.apache.catalina.core.StandardHost” appBase=“webapps” autoDeploy=“true” configClass=“org.apache.catalina.startup.ContextConfig” contextClass=“org.apache.catalina.core.StandardContext” debug=“0” deployXML=“true” errorReportValveClass=“org.apache.catalina.valves.ErrorReportValve” liveDeploy=“true” mapperClass=“org.apache.catalina.core.StandardHostMapper” name=“localhost” unpackWARs=“true”>

<Context className=“org.apache.catalina.core.StandardContext” cachingAllowed=“true” charsetMapperClass=“org.apache.catalina.util.CharsetMapper” cookies=“true” crossContext=“false” debug=“0” displayName=“Tomcat Administration Application” docBase="…/server/webapps/admin" mapperClass=“org.apache.catalina.core.StandardContextMapper” path="/admin" privileged=“true” reloadable=“false” swallowOutput=“false” useNaming=“true” workDir=“work\Standalone\localhost\admin” wrapperClass=“org.apache.catalina.core.StandardWrapper”>

<Logger className=“org.apache.catalina.logger.FileLogger” debug=“0” directory=“logs” prefix=“localhost_admin_log.” suffix=".txt" timestamp=“true” verbosity=“1”/>

</Context>

<Context className=“org.apache.catalina.core.StandardContext” cachingAllowed=“true” charsetMapperClass=“org.apache.catalina.util.CharsetMapper” cookies=“true” crossContext=“false” debug=“0” displayName=“Webdav Content Management” docBase=“C:\Tomcat 4.1\webapps\webdav” mapperClass=“org.apache.catalina.core.StandardContextMapper” path="/webdav" privileged=“false” reloadable=“false” swallowOutput=“false” useNaming=“true” workDir=“work\Standalone\localhost\webdav” wrapperClass=“org.apache.catalina.core.StandardWrapper”>

</Context>

<Context className=“org.apache.catalina.core.StandardContext” cachingAllowed=“true” charsetMapperClass=“org.apache.catalina.util.CharsetMapper” cookies=“true” crossContext=“true” debug=“0” displayName=“Tomcat Examples” docBase=“examples” mapperClass=“org.apache.catalina.core.StandardContextMapper” path="/examples" privileged=“false” reloadable=“true” swallowOutput=“false” useNaming=“true” workDir=“work\Standalone\localhost\examples” wrapperClass=“org.apache.catalina.core.StandardWrapper”>

<Logger className=“org.apache.catalina.logger.FileLogger” debug=“0” directory=“logs” prefix=“localhost_examples_log.” suffix=".txt" timestamp=“true” verbosity=“1”/>

<Parameter name=“context.param.name” override=“false” value=“context.param.value”/>

<Ejb home=“com.wombat.empl.EmployeeRecordHome” name=“ejb/EmplRecord” remote=“com.wombat.empl.EmployeeRecord” type=“Entity”/>

<Ejb description=“Example EJB Reference” home=“com.mycompany.mypackage.AccountHome” name=“ejb/Account” remote=“com.mycompany.mypackage.Account” type=“Entity”/>

<Environment name=“foo/name4” override=“true” type=“java.lang.Integer” value=“10”/>

<Environment name=“maxExemptions” override=“true” type=“java.lang.Integer” value=“15”/>

<Environment name=“minExemptions” override=“true” type=“java.lang.Integer” value=“1”/>

<Environment name=“foo/bar/name2” override=“true” type=“java.lang.Boolean” value=“true”/>

<Environment name=“name3” override=“true” type=“java.lang.Integer” value=“1”/>

<Environment name=“foo/name1” override=“true” type=“java.lang.String” value=“value1”/>

<LocalEjb description=“Example Local EJB Reference” home=“com.mycompany.mypackage.ProcessOrderHome” local=“com.mycompany.mypackage.ProcessOrder” name=“ejb/ProcessOrder” type=“Session”/>

<Resource auth=“SERVLET” name=“jdbc/EmployeeAppDb” scope=“Shareable” type=“javax.sql.DataSource”/>

<Resource auth=“Container” name=“mail/Session” scope=“Shareable” type=“javax.mail.Session”/>

<ResourceParams name=“jdbc/EmployeeAppDb”>

<parameter>

<name>user</name>

<value>sa</value>

</parameter>

<parameter>

<name>driverName</name>

<value>jdbc:HypersonicSQL:database</value>

</parameter>

<parameter>

<name>password</name>

<value></value>

</parameter>

<parameter>

<name>driverClassName</name>

<value>org.hsql.jdbcDriver</value>

</parameter>

</ResourceParams>

<ResourceParams name=“mail/Session”>

<parameter>

<name>mail.smtp.host</name>

<value>localhost</value>

</parameter>

</ResourceParams>

<ResourceLink global=“simpleValue” name=“linkToGlobalResource” type=“java.lang.Integer”/>

</Context>

<Context className=“org.apache.catalina.core.StandardContext” cachingAllowed=“true” charsetMapperClass=“org.apache.catalina.util.CharsetMapper” cookies=“true” crossContext=“false” debug=“0” docBase=“laboratorio” mapperClass=“org.apache.catalina.core.StandardContextMapper” path="/laboratorio" privileged=“false” reloadable=“false” swallowOutput=“false” useNaming=“true” workDir=“work\Standalone\localhost\laboratorio” wrapperClass=“org.apache.catalina.core.StandardWrapper”>

</Context>

<Context className=“org.apache.catalina.core.StandardContext” cachingAllowed=“true” charsetMapperClass=“org.apache.catalina.util.CharsetMapper” cookies=“true” crossContext=“false” debug=“0” displayName=“Tomcat Documentation” docBase=“C:\Tomcat 4.1\webapps\tomcat-docs” mapperClass=“org.apache.catalina.core.StandardContextMapper” path="/tomcat-docs" privileged=“false” reloadable=“false” swallowOutput=“false” useNaming=“true” workDir=“work\Standalone\localhost\tomcat-docs” wrapperClass=“org.apache.catalina.core.StandardWrapper”>

</Context>

<Context className=“org.apache.catalina.core.StandardContext” cachingAllowed=“true” charsetMapperClass=“org.apache.catalina.util.CharsetMapper” cookies=“true” crossContext=“false” debug=“0” displayName=“Welcome to Tomcat” docBase=“C:\Tomcat 4.1\webapps\ROOT” mapperClass=“org.apache.catalina.core.StandardContextMapper” path="" privileged=“false” reloadable=“false” swallowOutput=“false” useNaming=“true” workDir=“work\Standalone\localhost_” wrapperClass=“org.apache.catalina.core.StandardWrapper”>

</Context>

<Context className=“org.apache.catalina.core.StandardContext” cachingAllowed=“true” charsetMapperClass=“org.apache.catalina.util.CharsetMapper” cookies=“true” crossContext=“false” debug=“0” displayName=“Tomcat Manager Application” docBase="…/server/webapps/manager" mapperClass=“org.apache.catalina.core.StandardContextMapper” path="/manager" privileged=“true” reloadable=“false” swallowOutput=“false” useNaming=“true” workDir=“work\Standalone\localhost\manager” wrapperClass=“org.apache.catalina.core.StandardWrapper”>

<ResourceLink global=“UserDatabase” name=“users” type=“org.apache.catalina.UserDatabase”/>

</Context>

<Logger className=“org.apache.catalina.logger.FileLogger” debug=“0” directory=“logs” prefix=“localhost_log.” suffix=".txt" timestamp=“true” verbosity=“1”/>

</Host>

<Logger className=“org.apache.catalina.logger.FileLogger” debug=“0” directory=“logs” prefix=“catalina_log.” suffix=".txt" timestamp=“true” verbosity=“1”/>

<Realm className=“org.apache.catalina.realm.UserDatabaseRealm” debug=“0” resourceName=“UserDatabase” validate=“true”/>

</Engine>

</Service>

</Server>

Algúem poderia dar uma ajuda?

rodrigo_gomes

Olá,

a classe Pessoa está dentro do package laboratorio.jsp ???
se tiver tem algo errado com sua estrutura de diretorios

tom cat 4.1 | webapps | laboratorio |-----> imagens |-----> jsp |-----> WEB-INF |---->classes |---->lib |---->sources

Deveria ter um diretorio laboratorio/jsp dentro do diretorio classes, que seria o lugar correto de sua classe Pessoa.
Mas se não tiver um package crie um…comigo já aconteceu o mesmo erro uma vez, e minha classe não tinha package, depois que eu cruei funcionou…

Qualquer duvida só postar!
Feliz 2005!!

Rodrigo

Aganiuipuque

CAra…
eu criei um package dentro da pasta web-inf/classes chamado LAB
e dentro de LAB eu adicionei o arquivos .jsp e o arquivo .class…

nao rolou…

Nao tem que fazer nada no web.xml ou server.xml ?

rodrigo_gomes

dentro de WEB-INF/classes/LAB deve ter somente os seus .class, e nessas classes tem que ser especificado o package LAB, aí então no jsp você o importa...
[code]<%@ page language="java" import="LAB.Pessoa"%>

te mais

rodrigo_gomes

dentro de WEB-INF/classes/LAB deve ter somente os seus .class, e nessas classes tem que ser especificado o package LAB, aí então no jsp você o importa…

&lt;%@ page language="java" import="LAB.Pessoa"%&gt;

te mais

Aganiuipuque

Cara…
Firmeza, deu certo!

Eu não estava “dizendo” na classe Pessoa que a package era “lab”.

Então acrescentei esta linha:

package lab;

Agora está funcionando!!! :smiley:

Valeu mesmo irmãozinho!!

:smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley:

Criado 31 de dezembro de 2004
Ultima resposta 3 de jan. de 2005
Respostas 7
Participantes 3