swagger-api / swagger-core

Examples and server integrations for generating the Swagger API Specification, which enables easy access to your REST API
http://swagger.io
Apache License 2.0
7.36k stars 2.17k forks source link

Swagger, Jersey and Tomcat 7.0.29 #65

Closed marlandy closed 11 years ago

marlandy commented 11 years ago

Hi,

I´m trying swagger with Jersey (v 1.14) and Apache Tomcat 7.0.29. When Tomcat starts an OutOfMemoryError occurs.

With Tomcat 6.0.32 it works fine.

This is my servlet configuration:

<servlet>
        <servlet-name>JerseyTest</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>
            <param-value>com.sun.jersey.api.core.PackagesResourceConfig</param-value>
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.sample.swagger;com.wordnik.swagger.jaxrs</param-value>
        </init-param>
        <init-param>
            <param-name>swagger.api.basepath</param-name>
            <param-value>http://localhost:8080</param-value>
        </init-param>
        <init-param>
            <param-name>api.version</param-name>
            <param-value>1.0</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

Any ideas?

Thanks

fehguy commented 11 years ago

Hi, can you try deploying the war from the sample in your tomcat container? Try this:

http://repo1.maven.org/maven2/com/wordnik/swagger-java-sample-app_2.9.1/1.1.0/

marlandy commented 11 years ago

The same error occurs.

GRAVE: Error waiting for multi-thread deployment of WAR files to complete
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
    at java.util.concurrent.FutureTask.get(FutureTask.java:83)
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:752)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:472)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1413)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:313)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:401)
    at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:346)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1140)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:785)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.OutOfMemoryError: Java heap space
    at java.util.zip.InflaterInputStream.<init>(InflaterInputStream.java:71)
    at java.util.zip.ZipFile$1.<init>(ZipFile.java:224)
    at java.util.zip.ZipFile.getInputStream(ZipFile.java:224)
    at java.util.zip.ZipFile.getInputStream(ZipFile.java:192)
    at java.util.jar.JarFile.getInputStream(JarFile.java:385)
    at org.apache.tomcat.util.scan.FileUrlJar.getEntryInputStream(FileUrlJar.java:97)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1941)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1908)
    at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1893)
    at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1296)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:855)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:346)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5173)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:963)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1600)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    ... 5 more
fehguy commented 11 years ago

Can you show what your dependencies are? My guess is you're picking up the wrong version of scala

marlandy commented 11 years ago

These are my dependencies:

<dependencies>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-server</artifactId>
            <version>1.14</version>
        </dependency>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-servlet</artifactId>
            <version>1.14</version>
        </dependency>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-json</artifactId>
            <version>1.14</version>
        </dependency>
        <dependency>
            <groupId>com.wordnik</groupId>
            <artifactId>swagger-jaxrs_2.9.1</artifactId>
            <version>1.1.0</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
fehguy commented 11 years ago

Howdy, I just got the swagger sample working fine with a fresh copy of tomcat. All I did was grab the sample war from here:

https://oss.sonatype.org/content/repositories/releases/com/wordnik/swagger-scala-sample-app_2.9.1/1.1.0/swagger-scala-sample-app_2.9.1-1.1.0.war

... and dump it in the webapps folder with the name "api.war". Sample started up just fine.

Could you please try to reproduce that step? You should be able to hit http://localhost:8080/api/resources.json once ./bin/catalina.sh start is executed.

marlandy commented 11 years ago

I´ve got same error. Have you tried with Tomcat 7.0.29?

fehguy commented 11 years ago

Yep, I get that error on 7.0.29. Any chance you can use 7.0.32?

fehguy commented 11 years ago

I'm closing this as it seems like s 7.0.29 bug.