[RESOLVIDO] Vraptor + Jetty 8.1

8 respostas
Mickdark

Oaew pessoal!!

Bom, estava tentando trocar de server, passar do tomcat para o Jetty, e acabei fazendo alguns testes com alguns plugins!!

Primeiro tentei instalar a versão mais atual e estavel do Jetty a 8.1 direto do site da Codehaus
Não funcionou pq o eclipse não possui o wtp para a versão 8, apenas para a versão 6.

Depois eu instalei o WTP e fiz funcionar com a versão da Codehaus, ele não le as paginas JSP criadas

Tentei instalar uma versão de compatibilidade do eclipse para o Jetty, aconteceu a mesma coisa

Dai eu li o documento que vem dentro da pasta de plugin do WTP que o plugin só iria funcionar se eu tivesse a versão Helios do Eclipse, fiz o teste e aconteceu a mesma coisa

Minha ultima tentativa foi instalar um plugin da google chamado “Run-Jetty-Run”, e este funcionou XD!!!

Agora a minha duvida seria, como configurar para que esse server pegue as configurações no web.xml do VRaptor?? Procurei alguns tutoriais e não encontrei nada sobre!!!

Caso alguem queira tentar, os links para o WTP do Jetty para o eclipse são estes:


http://download.eclipse.org/jetty/updates/jetty-wtp/development

8 Respostas

Mickdark

Acho que eu sei porque ele não está pegando a configuração, deve ser pq o run-Jetty-run utiliza a versão 6 do server, e essa não interpreta servlet 3.0, poderiam confirmar se é isto mesmo?

Running Jetty 6.1.26
2012-04-09 15:54:39.219:INFO::Logging to STDERR via org.mortbay.log.StdErrLog
ParentLoaderPriority enabled
Context path:/Sbooka
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\build\classes
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\antlr-2.7.6.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\aopalliance.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\asm-3.3.1.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\aspectjrt.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\cglib-nodep-2.1_3.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\commons-collections-3.1.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\commons-logging.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\dom4j-1.6.1.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\guava-r07.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\hibernate-jpa-2.0-api-1.0.1.Final.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\hibernate3.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\javassist_3.15-GA.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\jstl-api-1.2.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\jstl-impl-1.2.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\jta-1.1.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\junit-4.10.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\log4j-1.2.16.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\mirror-1.5.1.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\objenesis-1.1.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\ognl-2.7.3.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\ojdbc5.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\org.springframework.aop-3.0.5.RELEASE.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\org.springframework.asm-3.0.5.RELEASE.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\org.springframework.aspects-3.0.5.RELEASE.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\org.springframework.beans-3.0.5.RELEASE.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\org.springframework.context-3.0.5.RELEASE.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\org.springframework.core-3.0.5.RELEASE.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\org.springframework.expression-3.0.5.RELEASE.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\org.springframework.web-3.0.5.RELEASE.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\paranamer-2.2.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\scannotation-1.0.2.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\slf4j-api-1.6.2.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\slf4j-log4j12-1.6.2.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\trugger-2.8.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\vraptor-3.4.0.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\lib\xstream-1.3.1.jar
ProjectClassLoader: entry=C:\Users\Michel Pereira\Desktop\Programas\Programacao\Eclipse\Projetos\Sbooka\WebContent\WEB-INF\classes
2012-04-09 15:54:39.307:INFO::jetty-6.1.26
log4j:WARN No appenders could be found for logger (br.com.caelum.vraptor.config.BasicConfiguration).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
2012-04-09 15:54:41.190:INFO::Started SelectChannelConnector@0.0.0.0:8080
Lucas_Cavalcanti

isso mesmo… jetty-6 ainda não é servlet 3

Mickdark

Obrigado Lucas!

Ta certo, então pra utilizar o Jetty com Servlet 3 + VRaptor eu teria que utilizar o Jetty 8 mesmo!! Só que eu tentei fazer a configuração e ele não interpreta os arquivos em JSP!! Alguem teria algum tutorial para configurar o Jetty?
Lucas_Cavalcanti

o jetty não vem com o jar dos jsps, vc precisa acrescentar… ou se vc já está com os jars do jsp, tente tirar

Mickdark

Obrigado Lucas ^^, eu acabei dando uma lida tambem em uma parte da documentação da Codehaus para a compilação dos JSPs, e foi informado que eles mudaram a forma como eles solicitam a compilação, vou tentar isso, baixar a full JDK EE ao invés da SE!!

"Compiling JSPs

To compile .jsp files into Java classes, you need a Java compiler. You can acquire a Java compiler from the JVM if you are using a full JDK, or from a third party Jar.

In versions of Jetty prior to 7.5.0, the JSP infrastructure made use of the Eclipse Java Compiler (ecj.jar) which is supplied in $JETTY_HOME/lib/jsp. For jetty-7.5.0 we upgraded the version of JSP to jsp-impl-2.1.3.b10 (from Glassfish). In this version,[color=blue] the JSP infrastructure ALWAYS tries to acquire a Java compiler from the JVM if the version of Java is 1.6 or above[/color]. [color=red]Therefore, if you are using a JRE, JSPs are unable to compile so you must use a full JDK[/color]. Alternatively, you can precompile your JSPs (which is preferable in a production deployment in any case). The Jetty JSPC Maven Plugin is helpful for precompilation. "

Vou fazer alguns testes aqui!!!

Ha, eu tambem baixei outro run-jetty-run com suporte para Jetty 8.1 numa issue que eu li , nesse ultimo teste que eu fiz ele deu uns erros bem locoos, mas deve ser por causa da JDK full!!!

quem quiser testar, ta ai!!

Eclipse
Menu Help > Install new Software

http://run-jetty-run.googlecode.com/svn/trunk/updatesite-nightly/ => Jetty 7 e 8 + Core

O erro que está dando no run-jetty-run 8:

HTTP ERROR 500

Problem accessing /Sbooka/. Reason:

    org.apache.jasper.JasperException: PWC6345: There is an error in invoking javac.  A full JDK (not just JRE) is required

Caused by:

br.com.caelum.vraptor.InterceptionException: org.apache.jasper.JasperException: PWC6345: There is an error in invoking javac.  A full JDK (not just JRE) is required
	at br.com.caelum.vraptor.resource.DefaultResourceNotFoundHandler.couldntFind(DefaultResourceNotFoundHandler.java:45)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:71)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1337)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:484)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
	at org.eclipse.jetty.server.Server.handle(Server.java:351)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:454)
	at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:890)
	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:944)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:634)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:609)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:45)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.jasper.JasperException: PWC6345: There is an error in invoking javac.  A full JDK (not just JRE) is required
	at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:92)
	at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:378)
	at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:119)
	at org.apache.jasper.compiler.Jsr199JavaCompiler.compile(Jsr199JavaCompiler.java:208)
	at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:384)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:453)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:625)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:594)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1366)
	at br.com.caelum.vraptor.core.DefaultStaticContentHandler.deferProcessingToContainer(DefaultStaticContentHandler.java:64)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:80)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1337)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:484)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:542)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
	at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:271)
	at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:98)
	at org.eclipse.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:557)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:594)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1366)
	at br.com.caelum.vraptor.resource.DefaultResourceNotFoundHandler.couldntFind(DefaultResourceNotFoundHandler.java:41)
	... 30 more
Mickdark

Aew, consegui uma parte XD!!! Agora ele roda os arquivos em JSP, mas ainda não consegui fazer com que o web.xml com as configurações do VRaptor, possa funcionar com o Jetty!!!

O que eu fiz para funcionar os JSPs no eclipse!!

Entrei no site abaixo e instalei a versão compativel (JDK full “EE”+ JRE)
http://www.oracle.com/technetwork/java/javaee/downloads/java-ee-sdk-6u3-jdk-7u1-downloads-523391.html

Depois de instalar a JDK ele acaba instalando o GlassFish também, no meu caso ele criou C:/GlassFish3/JDK7/jre
Esse local é só mapear no JRE padrão do eclipse
Menu Run > Run Configurations > Jett WebApp (Logo em seguida selecione o nome do projeto) > Guia JRE > Alternate JRE > Installed JREs > Selecione ou Add a JRE > Coloque o nome e o diretorio acima

Mickdark

Alguem conhece algum livro que ensine a configurar o Jetty 8.1? Por que no site da Codehaus e do Eclipse eu não encontrei tutoriais para o Jetty nessa versão, apenas a API 7.6 e 8!!

Mickdark

Depois de algum tempo voltei, e consegui configurar o Jetty 8.1.4 no eclipse!!!

Passos:

1-) Instalação no WTP do Jetty para geração dos servers acima do 6 até o 8 (Eclipse Indigo)

Menu: Help > Install new Software > <a href="http://download.eclipse.org/jetty/updates/jetty-wtp">http://download.eclipse.org/jetty/updates/jetty-wtp</a> (Adicionar este endereço para baixar e instalar no eclipse o WTP)

2-) Baixe o server Jetty (Eu vou passar o link do 8.1.4)
http://download.eclipse.org/jetty/stable-8/dist/
Descompacte o arquivo.

3-) Adicionar novo server Jetty
Abrir a view dos servers:
Menu: Window > Show View > Servers ou Alt+Shift+Q Q > Server > Servers
Botão direito dentro da view servers > New > Server > Jetty > “Escolha a Versão” > “Escolha o diretorio do arquivo baixado” > “Escolha o Projeto” > Finish

Na Primeira vez que eu fui rodar o projeto ele deu erro:
java.lang.ClassNotFoundException: org.objectweb.asm.ClassVisitor (org.objectweb.asm-3.1.0.v200803061910.jar)
e logo em seguida: java.lang.ClassNotFoundException: javax.annotation.security.RunAs (javax.annotation-1.1.0.v201108011116.jar)
cada um desses arquivos ele não reconheceu, por que, o Eclipse não colocou no classPath esses Jars, para arrumar é só colocar manualmente

4-) Colocando os arquivos “Objectweb” e “Javax.Annotation” na classPath do server
Clique com o botão direito no servidor do Jetty criado na view server e vá em Open ou F3 (selecionado a view server)
Vá em Open Launch Configuration >“Guia” ClassPath > Add External Jars
Eu encontrei os arquivos neste caminho: Java\Servers\jetty-distribution-8.1.4.v20120524\jetty-distribution-8.1.4.v20120524\lib\annotations (Servers foi o local que eu descompactei o pacote do Jetty)

Obs*: Se estiver ocorrendo erro com outro(s) arquivo(s) fora esse(s), provavelmente é algum outro arquivo que o Eclipse não passou para o classPath, os outros arquivos estão 1 diretório acima deste

No Wikieclipse também explica muito bem: http://wiki.eclipse.org/Jetty_WTP_Plugin/Jetty_WTP_Create_Server

Pronto, só fazer um teste com algum arquivo index.html, htm ou jsp no WebContent e rodar!!! ^^

Criado 5 de abril de 2012
Ultima resposta 26 de jun. de 2012
Respostas 8
Participantes 2