[RESOLVIDO] Maven + tomcat + jersey = A child container failed during start

4 respostas Resolvido
R

Colegas estou com o seguinte problema, meu tomcat nao estarta quando add meu projeto maven, mas quando eu rodo sem o projeto, ele starta normal, antes ele tava acusando que minha dendencia, jersey-server, estava como jar corrompido ou faltando, coloquei uma versão anterior pelo mavenreposytory.com, e nao estarta mais, segui o erro:

fev 17, 2017 12:55:35 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
ADVERTÊNCIA: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:teste' did not find a matching property.
fev 17, 2017 12:55:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Server version:        Apache Tomcat/9.0.0.M17
fev 17, 2017 12:55:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Server built:          Jan 10 2017 20:59:20 UTC
fev 17, 2017 12:55:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Server number:         9.0.0.0
fev 17, 2017 12:55:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: OS Name:               Windows 7
fev 17, 2017 12:55:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: OS Version:            6.1
fev 17, 2017 12:55:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Architecture:          amd64
fev 17, 2017 12:55:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Java Home:             C:\Program Files\Java\jdk1.8.0_121\jre
fev 17, 2017 12:55:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: JVM Version:           1.8.0_121-b13
fev 17, 2017 12:55:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: JVM Vendor:            Oracle Corporation
fev 17, 2017 12:55:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: CATALINA_BASE:         C:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
fev 17, 2017 12:55:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: CATALINA_HOME:         C:\Program Files\Apache Software Foundation\Tomcat 9.0
fev 17, 2017 12:55:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dcatalina.base=C:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
fev 17, 2017 12:55:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 9.0
fev 17, 2017 12:55:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dwtp.deploy=C:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
fev 17, 2017 12:55:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 9.0\endorsed
fev 17, 2017 12:55:35 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dfile.encoding=Cp1252
fev 17, 2017 12:55:35 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFORMAÇÕES: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.8.0_121\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_121/bin/server;C:/Program Files/Java/jre1.8.0_121/bin;C:/Program Files/Java/jre1.8.0_121/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Git\cmd;C:\Program Files\Java\jdk1.8.0_121\bin;C:\Program Files\MySQL\MySQL Utilities 1.6\;C:\Users\Arquilau Brandão\Downloads\eclipse;;.
fev 17, 2017 12:55:35 PM org.apache.coyote.AbstractProtocol init
INFORMAÇÕES: Initializing ProtocolHandler ["http-nio-8080"]
fev 17, 2017 12:55:36 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFORMAÇÕES: Using a shared selector for servlet write/read
fev 17, 2017 12:55:36 PM org.apache.coyote.AbstractProtocol init
INFORMAÇÕES: Initializing ProtocolHandler ["ajp-nio-8009"]
fev 17, 2017 12:55:36 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFORMAÇÕES: Using a shared selector for servlet write/read
fev 17, 2017 12:55:36 PM org.apache.catalina.startup.Catalina load
INFORMAÇÕES: Initialization processed in 2535 ms
fev 17, 2017 12:55:36 PM org.apache.catalina.core.StandardService startInternal
INFORMAÇÕES: Starting service Catalina
fev 17, 2017 12:55:36 PM org.apache.catalina.core.StandardEngine startInternal
INFORMAÇÕES: Starting Servlet Engine: Apache Tomcat/9.0.0.M17
fev 17, 2017 12:55:37 PM org.apache.catalina.core.ContainerBase startInternal
GRAVE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@6d1dc215]
	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.util.concurrent.FutureTask.get(FutureTask.java:192)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:939)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@6d1dc215]
	at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:441)
	at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:139)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:173)
	at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:708)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
	at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4832)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4964)
	... 7 more
Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid LOC header (bad signature)
	at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:113)
	at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
	... 12 more
Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
	at java.util.zip.ZipFile.read(Native Method)
	at java.util.zip.ZipFile.access$1400(ZipFile.java:60)
	at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:717)
	at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:419)
	at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
	at sun.misc.IOUtils.readFully(IOUtils.java:65)
	at java.util.jar.JarFile.getBytes(JarFile.java:425)
	at java.util.jar.JarFile.getManifestFromReference(JarFile.java:193)
	at java.util.jar.JarFile.getManifest(JarFile.java:180)
	at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:111)
	... 13 more

fev 17, 2017 12:55:37 PM org.apache.catalina.core.ContainerBase startInternal
GRAVE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: A child container failed during start
	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.util.concurrent.FutureTask.get(FutureTask.java:192)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:939)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:655)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:948)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

fev 17, 2017 12:55:37 PM org.apache.catalina.startup.Catalina start
GRAVE: The required Server component failed to start so Tomcat is unable to start.
org.apache.catalina.LifecycleException: A child container failed during start
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:948)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:655)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495)

fev 17, 2017 12:55:37 PM org.apache.coyote.AbstractProtocol pause
INFORMAÇÕES: Pausing ProtocolHandler ["http-nio-8080"]
fev 17, 2017 12:55:37 PM org.apache.coyote.AbstractProtocol pause
INFORMAÇÕES: Pausing ProtocolHandler ["ajp-nio-8009"]
fev 17, 2017 12:55:37 PM org.apache.catalina.core.StandardService stopInternal
INFORMAÇÕES: Stopping service Catalina
fev 17, 2017 12:55:37 PM org.apache.coyote.AbstractProtocol destroy
INFORMAÇÕES: Destroying ProtocolHandler ["http-nio-8080"]
fev 17, 2017 12:55:37 PM org.apache.coyote.AbstractProtocol destroy
INFORMAÇÕES: Destroying ProtocolHandler ["ajp-nio-8009"]

4 Respostas

R

e esse é meu pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>br.com.teste</groupId>
  <artifactId>teste</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.0.0</version>
        <configuration>
          <warSourceDirectory>WebContent</warSourceDirectory>
         
        </configuration>
      </plugin>
    </plugins>
  </build>
  
  <dependencies>
  	
  	<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-server -->
	<dependency>
    	<groupId>org.glassfish.jersey.core</groupId>
    	<artifactId>jersey-server</artifactId>
    	<version>2.22.2</version>
	</dependency>
  	
  
 	<dependency>
    	<groupId>javax.servlet</groupId>
    	<artifactId>javax.servlet-api</artifactId>
    <version>4.0.0-b01</version>
	</dependency>

    <dependency>
    	<groupId>org.glassfish.jersey.containers</groupId>
    	<artifactId>jersey-container-servlet</artifactId>
    	<version>2.26-b01</version>
    </dependency>
    <dependency>
    	<groupId>mysql</groupId>
    	<artifactId>mysql-connector-java</artifactId>
    	<version>6.0.5</version>
    </dependency>
    <dependency>
    	<groupId>org.glassfish.jersey.media</groupId>
    	<artifactId>jersey-media-moxy</artifactId>
    	<version>2.26-b02</version>
    </dependency> 
    
    <dependency>
    	<groupId>commons-codec</groupId>
    	<artifactId>commons-codec</artifactId>
    	<version>1.10</version>
    </dependency>
  </dependencies>
</project>
R

Bem como ninguém ajudou, segui o que eu to fazendo, resolvi alguns problemas, mudei de servidor, estou usando glassfish, agora o meu projeto estarta e o servidor esta ok, mas quando faço um teste pelo postman ele retorna HTTP Status 404 - Not Found, mas o o glassfish esta rodando normal, e o endereço da aplicação tbm esta correta, é a msm no web.xml, entao agora ou eu me mato ou eu desisto dessa merda de linguagem JAVA e vou tentar PHP.

lvbarbosa

Se você ler o log, vai achar isso daqui:

java.util.zip.ZipException: invalid LOC header (bad signature)

Uma olhadinha no Google e: http://stackoverflow.com/questions/14495040/tomcat-server-fails-to-start-the-server-and-application-in-sts

Você precisa ter certeza que configurou a aplicação JAX-RS de forma correta e o recurso que você está tentando acessar existe. Caso você tenha feito o deployment de forma correta e teu código esteja certo (configuração da aplicação JAX-RS e dos resources), você pode estar utilizando a URL errada. Existem vários fatores envolvidos que precisam necessariamente estar corretos, não é só a mensagem de erro e o pom.xml.

Não existe linguagem milagrosa, colega. Sem estudar, você vai se enrolar tanto no Java quanto no PHP. Já estudou como funciona o Java EE? O que é um deployment-descriptor? Como funciona os arquivos war/jar/ear? Leu os trechos pertinentes da documentação do tomcat e/ou do glassfish? Ficar lendo tutorial superficial na Internet nunca vai ser suficiente. Se você quer ser programador, vai ter que aprender a ter paciência e saber lidar com os problemas ao invés de fugir.

Sinto muito, mas o mundo não gira ao teu redor. E não generalize, porque tem muita gente aqui que vive respondendo sempre que dá, de forma gratuita e com muita boa vontade, independente de quem está perguntando. Já parou para pensar que, talvez, ninguém que saiba como resolver esse problema teve a chance de ler ou responder teu post ainda?

Lamento te informar, mas com essa postura ignorante, você nem vai a lugar algum, nem vai obter ajuda de ninguém.

R
Solucao aceita

Caro colega, realmente eu exagerei um pouco, rsrs, mas estava há 3 semanas nesse simples service, e eu só fiz pra testar a injeção de dependência do maven + jersey, visto que não tinha usado ainda, mas resolvi ler o doc, como vc sugeriu, do jersey, e no espirito de colaboração dessa comunidade vou postar minhas descobertas que resolveram meu caso segue: No jersey2 diferente do jersey 1, não se usa mais no <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>, e sim <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>. outra coisas são as dependências, no servlet API 3.0 se usa: <groupId>org.glassfish.jersey.containers</groupId> e nao mais:<groupId>com.sun.jersey</groupId>. No fim resolvi lendo a documentação, e quanto a abandonar JAVA, eu tava brincando, sou certificado OCJP, então eu amo essa linguagem mas tbm odeio de vez em quando…rsrsrs, abraços.

Criado 17 de fevereiro de 2017
Ultima resposta 22 de fev. de 2017
Respostas 4
Participantes 2