2

I'm new to Eclipse, Tomcat and the web service development. I'm just trying to learn the basics. But, unfortunately I've come across an issue which I'm not able to solve even after following the instructions from the various links from internet. I've tried the following approaches :

PS:

  • I'm using Eclipse Neon with apache-tomcat-8.0.36
  • I created a basic HelloWorld example to check if that project runs on the server, and that works absolutely fine with the same server
  • The problem starts as soon as I add the jersey jar files (from jaxrs-ri/api and jaxrs-ri/lib) to the project WEB-INF/lib and try to run as -> run on server from Eclipse
  • I tried the same by converting the project to the maven project, but then also the same issue persists

Also, I'm posting the error while running the project on server :

> 
> Jul 25, 2016 6:27:32 PM
> org.apache.tomcat.util.digester.SetPropertiesRule begin WARNING:
> [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting
> property 'source' to 'org.eclipse.jst.jee.server:RESTJerseyExample'
> did not find a matching property. Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: Server
> version:        Apache Tomcat/8.0.36 Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: Server
> built:          Jun 9 2016 13:55:50 UTC Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: Server
> number:         8.0.36.0 Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: OS Name:  
> Mac OS X Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: OS
> Version:            10.11.5 Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO:
> Architecture:          x86_64 Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: Java Home:
> /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre
> Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: JVM
> Version:           1.8.0_92-b14 Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: JVM
> Vendor:            Oracle Corporation Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO:
> CATALINA_BASE:        
> /Users/easiembedded/Documents/workspace/Eclipse/.metadata/.plugins/org.eclipse.wst.server.core/tmp0
> Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO:
> CATALINA_HOME:         /usr/local/apache-tomcat-8.0.36 Jul 25, 2016
> 6:27:32 PM org.apache.catalina.startup.VersionLoggerListener log INFO:
> Command line argument:
> -Dcatalina.base=/Users/easiembedded/Documents/workspace/Eclipse/.metadata/.plugins/org.eclipse.wst.server.core/tmp0
> Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: Command
> line argument: -Dcatalina.home=/usr/local/apache-tomcat-8.0.36 Jul 25,
> 2016 6:27:32 PM org.apache.catalina.startup.VersionLoggerListener log
> INFO: Command line argument:
> -Dwtp.deploy=/Users/easiembedded/Documents/workspace/Eclipse/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps
> Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: Command
> line argument:
> -Djava.endorsed.dirs=/usr/local/apache-tomcat-8.0.36/endorsed Jul 25, 2016 6:27:32 PM org.apache.catalina.startup.VersionLoggerListener log
> INFO: Command line argument: -Dfile.encoding=UTF-8 Jul 25, 2016
> 6:27:32 PM org.apache.catalina.core.AprLifecycleListener
> lifecycleEvent INFO: The APR based Apache Tomcat Native library which
> allows optimal performance in production environments was not found on
> the java.library.path:
> /Users/easiembedded/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
> Jul 25, 2016 6:27:32 PM org.apache.coyote.AbstractProtocol init INFO:
> Initializing ProtocolHandler ["http-nio-8080"] Jul 25, 2016 6:27:32 PM
> org.apache.tomcat.util.net.NioSelectorPool getSharedSelector INFO:
> Using a shared selector for servlet write/read Jul 25, 2016 6:27:32 PM
> org.apache.coyote.AbstractProtocol init INFO: Initializing
> ProtocolHandler ["ajp-nio-8009"] Jul 25, 2016 6:27:32 PM
> org.apache.tomcat.util.net.NioSelectorPool getSharedSelector INFO:
> Using a shared selector for servlet write/read Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.Catalina load INFO: Initialization
> processed in 486 ms Jul 25, 2016 6:27:32 PM
> org.apache.catalina.core.StandardService startInternal INFO: Starting
> service Catalina Jul 25, 2016 6:27:32 PM
> org.apache.catalina.core.StandardEngine startInternal INFO: Starting
> Servlet Engine: Apache Tomcat/8.0.36 Jul 25, 2016 6:27:32 PM
> org.apache.catalina.core.ContainerBase startInternal SEVERE: A child
> container failed during start java.util.concurrent.ExecutionException:
> org.apache.catalina.LifecycleException: Failed to start component
> [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/RESTJerseyExample]]
>   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:915)
>   at
> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
>   at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
>   at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)
>   at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)
>   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 start component
> [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/RESTJerseyExample]]
>   at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
>   ... 6 more Caused by: org.apache.catalina.LifecycleException: Failed
> to start component
> [org.apache.catalina.webresources.StandardRoot@3aa1d912]  at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
>   at
> org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4958)
>   at
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5088)
>   at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
>   ... 6 more Caused by: org.apache.catalina.LifecycleException: Failed
> to initialize component
> [org.apache.catalina.webresources.JarResourceSet@25268c7e]    at
> org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
>   at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:136)
>   at
> org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:699)
>   at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
>   ... 9 more Caused by: java.lang.IllegalArgumentException:
> java.util.zip.ZipException: invalid LOC header (bad signature)    at
> org.apache.catalina.webresources.JarResourceSet.initInternal(JarResourceSet.java:139)
>   at
> org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
>   ... 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.JarResourceSet.initInternal(JarResourceSet.java:137)
>   ... 13 more
> 
> Jul 25, 2016 6:27:32 PM org.apache.catalina.core.ContainerBase
> startInternal SEVERE: A child container failed during start
> java.util.concurrent.ExecutionException:
> org.apache.catalina.LifecycleException: Failed to start component
> [StandardEngine[Catalina].StandardHost[localhost]]    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:915)
>   at
> org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
>   at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
>   at
> org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)
>   at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
>   at
> org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:787)
>   at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
>   at org.apache.catalina.startup.Catalina.start(Catalina.java:629)    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:351)   at
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485) Caused
> by: org.apache.catalina.LifecycleException: Failed to start component
> [StandardEngine[Catalina].StandardHost[localhost]]    at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
>   at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)
>   at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)
>   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: A child container failed
> during start  at
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923)
>   at
> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
>   at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
>   ... 6 more
> 
> Jul 25, 2016 6:27:32 PM org.apache.catalina.startup.Catalina start
> SEVERE: The required Server component failed to start so Tomcat is
> unable to start. org.apache.catalina.LifecycleException: Failed to
> start component [StandardServer[8005]]    at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
>   at org.apache.catalina.startup.Catalina.start(Catalina.java:629)    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:351)   at
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485) Caused
> by: org.apache.catalina.LifecycleException: Failed to start component
> [StandardService[Catalina]]   at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
>   at
> org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:787)
>   at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
>   ... 7 more Caused by: org.apache.catalina.LifecycleException: Failed
> to start component [StandardEngine[Catalina]]     at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
>   at
> org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)
>   at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
>   ... 9 more Caused by: org.apache.catalina.LifecycleException: A child
> container failed during start     at
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923)
>   at
> org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
>   at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
>   ... 11 more
> 
> Jul 25, 2016 6:27:32 PM org.apache.coyote.AbstractProtocol pause INFO:
> Pausing ProtocolHandler ["http-nio-8080"] Jul 25, 2016 6:27:32 PM
> org.apache.coyote.AbstractProtocol pause INFO: Pausing ProtocolHandler
> ["ajp-nio-8009"] Jul 25, 2016 6:27:32 PM
> org.apache.catalina.core.StandardService stopInternal INFO: Stopping
> service Catalina Jul 25, 2016 6:27:32 PM
> org.apache.coyote.AbstractProtocol destroy INFO: Destroying
> ProtocolHandler ["http-nio-8080"] Jul 25, 2016 6:27:32 PM
> org.apache.coyote.AbstractProtocol destroy SEVERE: Failed to destroy
> end point associated with ProtocolHandler ["http-nio-8080"]
> java.lang.NullPointerException    at
> org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:316)
>   at
> org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:492)
>   at
> org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:821)
>   at
> org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:534)
>   at
> org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)
>   at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
>   at
> org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:589)
>   at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
>   at
> org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:877)
>   at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
>   at org.apache.catalina.startup.Catalina.start(Catalina.java:633)    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:351)   at
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
> 
> Jul 25, 2016 6:27:32 PM org.apache.coyote.AbstractProtocol destroy
> INFO: Destroying ProtocolHandler ["ajp-nio-8009"] Jul 25, 2016 6:27:32
> PM org.apache.coyote.AbstractProtocol destroy SEVERE: Failed to
> destroy end point associated with ProtocolHandler ["ajp-nio-8009"]
> java.lang.NullPointerException    at
> org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:316)
>   at
> org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:492)
>   at
> org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:821)
>   at
> org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:534)
>   at
> org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)
>   at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
>   at
> org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:589)
>   at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
>   at
> org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:877)
>   at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
>   at org.apache.catalina.startup.Catalina.start(Catalina.java:633)    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:351)   at
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)

Any help would be really appreciated.

Thank You!

Gurjot kaur
  • 145
  • 1
  • 13
Rohit saraf
  • 491
  • 1
  • 6
  • 17
  • I don't think this is your problem, but you have jersey-server twice in your pom.xml – Riccardo Cossu Jul 25 '16 at 13:30
  • Good catch Riccardo. But that was a mistake from my end while posting the question. Have edited the question. The actual pom.xml file doesn't have the duplicate dependency. Thank You! – Rohit saraf Jul 25 '16 at 13:51

3 Answers3

2

Quick Answer :

Probably, I was using the wrong servlet class in my web.xml which depends on the jersey archive version being used. I'm using Jersey 2.x and the web.xml was having the following servlet url, which was causing the error :

<servlet>
    <servlet-name>Jersey Web Application</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

Then I replaced the above with the following, which resolved the error :

<servlet>
    <servlet-name>Jersey Web Application</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
Rohit saraf
  • 491
  • 1
  • 6
  • 17
0

Problem seems to be:

invalid LOC header (bad signature)

this is usually due to either of:

  • zip/jar file greater than 4GB and java < 7
  • corrupted zip files/jars

I've seen error like this in corrupted deployment

Riccardo Cossu
  • 2,699
  • 1
  • 28
  • 47
  • Could you please be more precise as I'm new to this. FYI, I'm not importing any jar explicitly as I'm using maven for dependencies. So, which zip/jar files are you referring to? Also, the same project with the same pom file I tried in another windows system with eclipse already set up and it works fine. Thank You! – Rohit saraf Jul 26 '16 at 06:37
  • FYI, I disabled the maven feature of my project and imported the jar files explicitly to the WEB-INF/lib and to the lib folder of the tomcat, still getting the same issue. – Rohit saraf Jul 26 '16 at 07:07
  • And now, all of my projects, even the sample hello world which was running yesterday is showing the same error. Fade Up!! Any suggestions would be really appreciated. – Rohit saraf Jul 26 '16 at 07:17
  • ok, that's actually good news, it means that your server is corrupted, and not your project; just reinstall the server from scratch (download it and unzip it again in a new directory) and it should go – Riccardo Cossu Jul 26 '16 at 07:22
  • I reinstalled server, but then again the basic hello world project worked but the posted project showed the same error. – Rohit saraf Jul 26 '16 at 07:47
0

Check your servlet-name inside servlet tag and servlet-name inside servlet-mapping. If they are not the same, it may throw error. That was the reason for my case.

Eric
  • 408
  • 8
  • 22