Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

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!