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

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"]

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>

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.

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.

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.