Solucionado (ver solução)
Solucionado
(ver solução)
10
respostas

Erro no build da webapp Leiloes

Olá,

Ao tentar executar o build da aplicação Leilões, na segunda aula do curso, ocorre o erro, reportado a seguir, e o processo não finaliza. Estou utilizando uma máquina com as seguintes configurações:

Windows 10 64 bits, x64

C:>java -version java version "9.0.1" Java(TM) SE Runtime Environment (build 9.0.1+11) Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

C:>javac -version javac 9.0.1

C:>ant -version Apache Ant(TM) version 1.10.1 compiled on February 2 2017

Variáveis de Ambiente - Variáveis do sistema

ANT_HOME C:\apache-ant-1.10.1

JAVA_HOME C:\Program Files\Java\jdk-9.0.1

PATH ... %JAVA_HOME\bin; %ANT_HOME\bin; C:\apache-ant-1.10.1\bin

Já tentei refazer o processo algumas vezes, apagando a pasta .ivy2, mas o problema persiste.

Estou preocupada porque tenho prazo para finalizar o curso.

Preciso de ajuda. Obrigada. : )

jetty.run:
    [jetty] Configuring Jetty for project: vraptor-scaffold
    [jetty] 2017-12-15 01:20:20.270::INFO:  Logging to STDERR via org.mortbay.log.StdErrLog

    [jetty] 2017-12-15 01:20:20.620::INFO:  org.mortbay.jetty.ant.JettyWebAppConfiguration does not support annotations on source. Use org.mortbay.jetty.annotations.Configuration instead
    [jetty] 2017-12-15 01:20:20.636::INFO:  No Transaction manager found - if your webapp requires one, please configure one.
    [jetty] 2017-12-15 01:20:21.06::WARN:  failed vraptor
    [jetty] br.com.caelum.vraptor.scan.ScannerException: Could not scan WEB-INF/classes

  [jetty] Caused by: java.io.IOException: invalid constant type: 18

  [jetty] 2017-12-15 01:20:21.021::WARN:  Failed startup of context org.mortbay.jetty.webapp.WebAppContext@2e6f610d{/,D:\Alura\Selenium\leiloes\src\main\webapp}
    [jetty] br.com.caelum.vraptor.scan.ScannerException: Could not scan WEB-INF/classes

  [jetty] Caused by: java.io.IOException: invalid constant type: 18

   [jetty] 2017-12-15 01:20:21.037::INFO:  Started SelectChannelConnector@0.0.0.0:8080
    [jetty] Web application 'leiloes': starting scanner at interval of 3 seconds.
10 respostas

Olá, pessoal!

Fiz um downgrade do JDK e uma nova tentativa de build da aplicação.

C:\>java -version
java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)

C:\>javac -version
javac 1.8.0_152

Alguns erros foram resolvidos mas ainda não consegui finalizar o buid da aplicação Leiloes.

    [jetty] 2017-12-16 01:39:45.800::INFO:  jetty-6.1.14
    [jetty] 2017-12-16 01:39:46.02::INFO:  org.mortbay.jetty.ant.JettyWebAppConfiguration does not support annotations on source. Use org.mortbay.jetty.annotations.Configuration instead
    [jetty] 2017-12-16 01:39:46.018::INFO:  No Transaction manager found - if your webapp requires one, please configure one.
    [jetty] 2017-12-16 01:39:50.458:leiloes:INFO:  jsp: init
    [jetty] Parent class loader is: ContextLoader@leiloes
    [jetty] 2017-12-16 01:39:50.568:leiloes:INFO:  Scratch dir for the JSP engine is: D:\Alura\Selenium\leiloes\target\jetty-temp\jsp
    [jetty] 2017-12-16 01:39:50.568:leiloes:INFO:  IMPORTANT: Do not modify the generated servlets
    [jetty] 2017-12-16 01:39:50.568:leiloes:INFO:  default: init
    [jetty] 2017-12-16 01:39:50.629::INFO:  Started SelectChannelConnector@0.0.0.0:8080
    [jetty] Web application 'leiloes': starting scanner at interval of 3 seconds.

Agora, ao tentar acessar http://localhost:8080/, ocorre o erro :

HTTP ERROR: 500
javax.servlet.http.HttpServletResponse.setCharacterEncoding(Ljava/lang/String;)V
RequestURI=/

Caused by:
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletResponse.setCharacterEncoding(Ljava/lang/String;)V
    at br.com.caelum.vraptor.http.WebXmlEncodingHandler.setEncoding(WebXmlEncodingHandler.java:43)
    at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:91)
    at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
    at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115)
    at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
    at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:361)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
    at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
    at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:324)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:533)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:207)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)
Powered by Jetty://

Continuo precisando de ajuda. Obrigada. : )

Oi Suely, tudo bom?

Parece que a aplicação está procurando um método que não existe na versão do jetty atual da sua maquina.

Eu rodei essa aplicação aqui com a versão:

Apache Ant(TM) version 1.9.9 compiled on June 29 2017

E foi tranquilo.

Tenta rodar o comando:

ant jetty -v

No seu terminal e compartilha com a gente aqui a versão?

aqui você encontra o link da versão mais recente pra download

Aguardo retorno.

Abraço

Olá, André!

Obrigada pela ajuda.

Na minha máquina, na tentativa de resolver o problema, baixei a versão 7.6.21.v20160908.

Conforme sua recomendação, baixei a versão mais recente. Descompactei os arquivos e coloquei a pasta no caminho C:\Program Files\jetty9.4.8.v20171121. Tenho configurada uma variável de ambiente JETTY_HOME com valor C:\Program Files\jetty9.4.8.v20171121 e essa variável também está na variável PATH. É isso?

Segue o resultado do comando ant jetty -v:

D:\Alura\Selenium\leiloes>ant jetty -v
Apache Ant(TM) version 1.10.1 compiled on February 2 2017
Trying the default build file: build.xml
Buildfile: D:\Alura\Selenium\leiloes\build.xml
Detected Java version: 1.8 in: C:\Program Files\Java\jdk1.8.0_152\jre
Detected OS: Windows 10
parsing buildfile D:\Alura\Selenium\leiloes\build.xml with URI = file:/D:/Alura/Selenium/leiloes/build.xml
Project base dir set to: D:\Alura\Selenium\leiloes
parsing buildfile jar:file:/C:/apache-ant-1.10.1/lib/ant.jar!/org/apache/tools/ant/antlib.xml with URI = jar:file:/C:/apache-ant-1.10.1/lib/ant.jar!/org/apache/tools/ant/antlib.xml from a zip file
 [property] Loading D:\Alura\Selenium\leiloes\build.properties

BUILD FAILED
Target "jetty" does not exist in the project "vraptor-scaffold".
        at org.apache.tools.ant.Project.tsort(Project.java:1929)
        at org.apache.tools.ant.Project.topoSort(Project.java:1837)
        at org.apache.tools.ant.Project.topoSort(Project.java:1800)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1376)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1260)
        at org.apache.tools.ant.Main.runBuild(Main.java:857)
        at org.apache.tools.ant.Main.startAnt(Main.java:236)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:287)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:113)

Total time: 0 seconds

D:\Alura\Selenium\leiloes>

O que faço agora?

Obrigada outra vez! : )

Oi Suely,

sua versão é a mais recente já... estranho a versão do java também.

O comando de ant jetty.run continua não funcionando?

aqui rolou uma discussão em relação ao mesmo problema que o seu, ao buildar o projeto etc

Uma vez eu tive um problema com esse projeto em especifico e baixando de novo e descompactando resolveu. As vezes pode ter dado algum problema ao descompactar. Acho que vale a tentativa haha

aqui você encontra o link do projeto.

No manual de instalação do ant também tem a seguinte nota:

The ant.bat script makes use of three environment variables - ANT_HOME, CLASSPATH and JAVA_HOME. Ensure that ANT_HOME and JAVA_HOME variables are set, and that they do not have quotes (either ' or ") and they do not end with \ or with /. CLASSPATH should be unset or empty.

Pra windows é legarl tomar um cuidado maior na definição das variaveis de ambiente.

Olá, André!

O comando jetty.run continua não funcionando mesmo eu fazendo um novo download e nova descompactação do arquivo leiloes.zip.

Observei, no vídeo da aula 2, que vários comandos são executados e o jetty é inicializado antes que toda a operação termine. Isso não acontece na minha máquina. Segue o trace...

jetty.run:
    [jetty] Configuring Jetty for project: vraptor-scaffold
    [jetty] 2017-12-22 16:05:40.999::INFO:  Logging to STDERR via org.mortbay.log.StdErrLog
    [jetty]
    [jetty] Configuring Jetty for web application: leiloes
    [jetty] Webapp source directory = C:\Users\Suely\Downloads\leiloes\src\main\webapp
    [jetty] Context path = /
    [jetty] Classpath = []
    [jetty] Default scanned paths = []
    [jetty] Extra scan targets = [C:\Users\Suely\Downloads\leiloes\src\main\webapp\WEB-INF\classes]
    [jetty] Temp directory = C:\Users\Suely\Downloads\leiloes\target\jetty-temp\
    [jetty] web.xml file = C:\Users\Suely\Downloads\leiloes\src\main\webapp\WEB-INF\web.xml
    [jetty] 2017-12-22 16:05:41.093::INFO:  jetty-6.1.14
    [jetty] 2017-12-22 16:05:41.265::INFO:  org.mortbay.jetty.ant.JettyWebAppConfiguration does not support annotations on source. Use org.mortbay.jetty.annotations.Configuration instead
   ** [jetty] 2017-12-22 16:05:41.265::INFO:  No Transaction manager found - if your webapp requires one, please configure one.**
    [jetty] 2017-12-22 16:05:46.152:leiloes:INFO:  jsp: init
    [jetty] Parent class loader is: ContextLoader@leiloes
    [jetty] 2017-12-22 16:05:46.261:leiloes:INFO:  Scratch dir for the JSP engine is: C:\Users\Suely\Downloads\leiloes\target\jetty-temp\jsp
    [jetty] 2017-12-22 16:05:46.261:leiloes:INFO:  IMPORTANT: Do not modify the generated servlets
    [jetty] 2017-12-22 16:05:46.277:leiloes:INFO:  default: init
    [jetty] 2017-12-22 16:05:46.355::INFO:  Started SelectChannelConnector@0.0.0.0:8080
    [jetty] Web application 'leiloes': starting scanner at interval of 3 seconds.

Até o ponto sinalizado com asteriscos, tudo acontece como no vídeo. A partir daí, a execução é diferente e não funciona. O que faço?

Acho que li todos os posts do blog Alura sobre problemas com essa aplicação e não encontrei solução.

Não tenho a variável de ambiente CLASSPATH na minha máquina.

O build não usa a versão do jetty instalada na máquina e sim a versão embutida no build: 6.1.14.

Ainda preciso de ajuda. Obrigada. : )

Oi Suely, tudo bom?

Essa linha:

[jetty] 2017-12-22 16:05:41.265::INFO:  No Transaction manager found - if your webapp requires one, please configure one.

É apenas um warning, recebo a mesma menssagem.

Acredito que o problema seja o classpath mesmo.

Aqui você encontra um tutorial da propria oracle de como verificar a configuração dessa variavel. Aqui tem um de como configurar a variavel no seu ambiente =)

Olá, André! Feliz 2018!

Usei a linha da warning apenas para sinalizar o ponto onde a execução do build passa a diferir da que é mostrada no vídeo da aula.

Não configurei a variável de ambiente CLASSPATH em minha máquina por causa da seguinte recomendação que encontrei no manual de instalação do Ant:

Windows Note:
     The ant.bat script makes use of three environment variables - ANT_HOME, CLASSPATH and JAVA_HOME. Ensure that ANT_HOME and JAVA_HOME variables are set, and that they do not have quotes (either ' or ") and they do not end with \ or with /. CLASSPATH should be unset or empty.

Ainda assim, você acha que configurar essa variável vai resolver o problema do build? O que deveria estar na CLASSPATH para atender a execução do build além do caminho da JDK? O Jetty e o Ant?

Ainda precisando de ajuda. Obrigada. : )

Feliz 2018 Suely =)

Pelo quote da documentação do ant:

The ant.bat script makes use of three environment variables - ANT_HOME, CLASSPATH and JAVA_HOME. Ensure that ANT_HOME and JAVA_HOME variables are set, and that they do not have quotes (either ' or ") and they do not end with \ or with /. CLASSPATH should be unset or empty.

Precisamos definir as 3 variaveis. O ANT_HOME, o JAVA_HOME e o CLASSPATH. Esse problema é caracteristico do windows na verdade. Em sistemas baseados em unix esse tipo de configuração é desnecessária. Acredito que o problema esteja nas variaveis porque a propria documentação explicita a configuração das 3 de forma bem especifica. Sem barras, ou aspas simples nem duplas.

Se essas configurações estão tão explicitas e bem definidas dessa forma é porque montar o ambiente é um problema pra bastante gente.

Além disso, aqui no forum já rolou algumas discussões em relação a execução desse projeto no windows e a maioria estava relacionada as variaveis de ambiente também

Uma saida pra isso é tentar subir uma máquina com Linux. As configurações para desenvolvimento em ambiente unix, como eu disse, costumam ser menos traumaticas. Justamente porque não precisamos nos preocupar com a definição dessas variaveis apontando pro caminho certo etc. Há muita margem de erro. A gente pode errar um character em uma das 3 váriaveis e já ter dor de cabeça.

Se você quiser, compartilha com a gente aqui um print das suas variaveis de ambiente. Assim a gente consegue ver se o problema não está realmente ai.

Vamos continuar até resolver =)

Abraço!

solução!

Olá, André!

Desculpe-me a demora em responder a sua sugestão. O retorno ao trabalho foi tumultuado e os estudos ficaram de lado um pouco.

Retomando, criei a variável de ambiente CLASSPATH adicionando o caminho das bibliotecas do Java, do Ant e do Jetty, mas, ao

executar o build, o erro persistiu.

No trabalho, uma colega conseguiu acessar a aplicação Leilões numa máquina com as seguintes configurações:

Windows 7 64 bits PATH acrescido de C:\Program Files\Java\jdk1.8.0_161\bin;C:\softs\apache-ant-1.10.1\bin JAVA_HOME: C:\Program Files\Java\jdk1.8.0_161 ANT_HOME: C:\softs\apache-ant-1.10.1 ANT_OPTS: -Dhttp.proxyHost=proxy.tre-ba.jus.br -Dhttp.proxyPort=3128

Fiz a instalação dessa versão do Java e configurei a variável ANT_OPTS, na minha máquina particular, mas não resolveu o problema.

Nesse trabalho de novas tentativas, descobri que foi liberada uma nova versão do Ant, a 1.10.2.

Instalei essa nova versão do Ant e o problema foi resolvido, sem nem mesmo ser necessário desabilitar o Firewall do Windows, como

foi requerido nas tentativas anteriores. Consegui acessar a aplicação Leilões! : )

Fiz ainda alguns testes, para certificar-me de que a solução veio da atualização de versão do Ant.

Nesses teste, listados abaixo, a execução do build resultou em sucesso com a versão do Ant 1.10.2 e as versões do Java 1.8.0_152 e

1.8.0_161. Com a versão mais nova do Java, a 9.0.4, o build falhou.

Resumindo, a solução encontrada na máquina com sistema operacional Windows 10, 64 bits:

1 - Instalar o Java JDK versão 1.8.0_152 ou 1.8.0_161

2 - Definir a variável de ambiente JAVA_HOME

3 - Instalar o Ant na versão 1.10.2

4 - Definir a variável de ambiente ANT_HOME

5 - Atualizar a variável de ambiente PATH acrescentando %JAVA_HOME%\bin; %ANT_HOME%\bin.

Obrigada pela paciente ajuda. : )

Boa Suely! Obrigado por compartilhar a solução com a gente.

Abraço!