Problemas com o método application.getContextPath()

5 respostas
dm_thiago

Olá pessoal,

Conheço Java a um certo tempo, mas só agora estou iniciando meus estudos sobre J2EE. Estou com uma dúvida um tanto estúpida. O método application.getContextPath() não existe aqui! E na minha faculdade, que está usando a mesma versão do java, ele existe. Alguem sabe outro método que possa substituir esse? Ou então alguem tem alguma idéia de como resolver esse meu problema?

Thiago

5 Respostas

T

Você deve ter se esquecido de incluir o arquivo servlet-api.jar (ou algum arquivo com o nome parecido - o nome do arquivo depende do seu web container) que é um arquivo que não vem com o JDK; ele vem com o web container (Tomcat, JBoss, Oracle Application Server, IBM WebSphere, Sun Java System Application Server, Glassfish, Geronimo etc.)

dm_thiago
thingol:
Você deve ter se esquecido de incluir o arquivo servlet-api.jar (ou algum arquivo com o nome parecido - o nome do arquivo depende do seu web container) que é um arquivo que não vem com o JDK; ele vem com o web container (Tomcat, JBoss, Oracle Application Server, IBM WebSphere, Sun Java System Application Server, Glassfish, Geronimo etc.)

Opa! Eu adicionei o servlet-api.jar a biblioteca domeu projeto mas mesmo assim o erro continua. Como eu disse, sou novato no assunto, e não sei se fiz o certo. Como IDE eu estou usando o NetBeans 5.5.1 e como sevidor de aplicação estou usando o Tomcat, que já vem imbutido no NetBeans. Vou colar aqui a linha do código que gera o erro e a mensagem que o Tomcat dá:

Abaixo o código:
<% String dominio = application.getContextPath();%>

Abaixo o erro:
type 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: 21 in the jsp file: /index.jsp
Generated servlet error:
C:\Documents and Settings\Usuário\.netbeans\5.5.1\apache-tomcat-5.5.17_base\work\Catalina\localhost\_\org\apache\jsp\index_jsp.java:57: cannot find symbol
symbol  : method getContextPath()
location: interface javax.servlet.ServletContext
 String dominio = application.getContextPath();
                             ^
1 error



	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

root cause

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

An error occurred at line: 21 in the jsp file: /index.jsp
Generated servlet error:
C:\Documents and Settings\Usuário\.netbeans\5.5.1\apache-tomcat-5.5.17_base\work\Catalina\localhost\_\org\apache\jsp\index_jsp.java:57: cannot find symbol
symbol  : method getContextPath()
location: interface javax.servlet.ServletContext
 String dominio = application.getContextPath();
                             ^
1 error



	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
	org.apache.jasper.compiler.AntCompiler.generateClass(AntCompiler.java:249)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:297)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
dm_thiago

Alguem? Alguma idéia?
=/

Claudio_Nazzari

Ola Amigo,

Na verdade o contextPath nao e uma funcionalidade do application em geral… ele e definido no request…
Tente assim:

request.getContextPath();
dm_thiago

Muito obrigado Claudio, funcionou perfeitamente!

Criado 9 de outubro de 2007
Ultima resposta 10 de out. de 2007
Respostas 5
Participantes 3