1

I have been trying to integrate the swagger with resteasy. I have tried lots of implementations. The implementation that works for me is using is below. But I am not able to see apis[].

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
    <display-name>ConnectloudWeb</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>

    <context-param>
        <param-name>resteasy.resources</param-name>
        <param-value>com.wordnik.swagger.jaxrs.listing.ApiListingResourceJSON</param-value>
    </context-param>

        <context-param>
            <param-name>resteasy.providers</param-name>
            <param-value>
                com.wordnik.swagger.jaxrs.listing.ApiDeclarationProvider
                ,com.wordnik.swagger.jaxrs.listing.ResourceListingProvider
                ,com.connectloudweb.webservices.interceptor.SecurityInterceptor
            </param-value>
        </context-param>

    <context-param>
        <param-name>resteasy.scan</param-name>
        <param-value>false</param-value>
    </context-param>
    <context-param>
        <param-name>resteasy.scan.providers</param-name>
        <param-value>false</param-value>
    </context-param>
    <context-param>
        <param-name>resteasy.scan.resources</param-name>
        <param-value>false</param-value>
    </context-param>
    <servlet>
        <servlet-name>ApiDeclarationServlet</servlet-name>
        <servlet-class>com.wordnik.swagger.servlet.listing.ApiDeclarationServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ApiDeclarationServlet</servlet-name>
        <url-pattern>/api-docs/*</url-pattern>
    </servlet-mapping>
    <!--context-param>
        <param-name>resteasy.scan</param-name>
        <param-value>true</param-value>
    </context-param -->
<!--    <context-param>
        <param-name>resteasy.providers</param-name>
        <param-value>com.connectloudweb.webservices.interceptor.SecurityInterceptor</param-value>
    </context-param>-->
    <context-param>
        <param-name>resteasy.servlet.mapping.prefix</param-name>
        <param-value>/</param-value>
    </context-param>
    <servlet>
        <servlet-name>Resteasy</servlet-name>
        <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Resteasy</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
    <context-param>
        <param-name>javax.ws.rs.core.Application</param-name>
        <param-value>com.connectloudweb.webservices.MyRESTApplication</param-value>
    </context-param>
    <listener>
        <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
    </listener>
    <filter>
        <filter-name>CORS</filter-name>
        <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
        <init-param>
            <param-name>cors.allowGenericHttpRequests</param-name>
            <param-value>true</param-value>
        </init-param>

        <init-param>
            <param-name>cors.allowOrigin</param-name>
            <param-value>*</param-value>
        </init-param>
        <init-param>
            <param-name>cors.allowSubdomains</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>cors.supportedMethods</param-name>
            <param-value>GET, HEAD, POST, OPTIONS, PUT, DELETE</param-value>
        </init-param>

        <init-param>
            <param-name>cors.supportedHeaders</param-name>
            <!--param-value>Content-Type, X-Requested-With, Accept, Authentication</param-value-->
            <param-value>cache-control,Pragma,Origin,Content-Type, X-Requested-With, Accept, Authentication, Access-Control-Allow-Origin</param-value>
        </init-param>

        <init-param>
            <param-name>cors.exposedHeaders</param-name>
            <param-value>X-Test-1, X-Test-2</param-value>
        </init-param>

        <init-param>
            <param-name>cors.supportsCredentials</param-name>
            <param-value>false</param-value>
        </init-param>

        <init-param>
            <param-name>cors.maxAge</param-name>
            <param-value>36000</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>CORS</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

POM.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>
    <parent>
        <artifactId>connectloud</artifactId>
        <groupId>com.connectloud</groupId>
        <version>1.0</version>
    </parent>

    <groupId>com.connectloud</groupId>
    <artifactId>RestAPI</artifactId>
    <version>${RestAPI-version}</version>
    <packaging>war</packaging>

    <name>RestAPI</name>

    <properties>
        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <netbeans.hint.deploy.server>JBoss4</netbeans.hint.deploy.server>
        <swagger-version>1.3.0</swagger-version>
    </properties>

    <dependencies>       
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jaxrs</artifactId>
            <version>2.3.2.Final</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jaxb-provider</artifactId>
            <version>2.3.2.Final</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>common</artifactId>
            <version>${common-version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>Manager</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>PlatformMonitor</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>6.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.thetransactioncompany</groupId>
            <artifactId>cors-filter</artifactId>
            <version>1.5.1</version>
        </dependency>

                <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>JBPM</artifactId>
            <version>${JBPM-version}</version>
                        <exclusions>
                                <exclusion>
                                        <artifactId>javassist</artifactId>
                                        <groupId>org.javassist</groupId>
                                </exclusion>
                        </exclusions>
        </dependency>
        <!--<dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>CatalogManager</artifactId>
            <version>${CatalogManager-version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>ResourceManager</artifactId>
            <version>${ResourceManager-version}</version>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>ComputeManager</artifactId>
            <version>${ComputeManager-version}</version>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>RabbitManager</artifactId>
            <version>${RabbitManager-version}</version>
        </dependency>

        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>TenantManager</artifactId>
            <version>${TenantManager-version}</version>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>LocalizationManager</artifactId>
            <version>${LocalizationManager-version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>ContractManager</artifactId>
            <version>${ContractManager-version}</version>
            <type>jar</type>
        </dependency>     
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>QuotaManager</artifactId>
            <version>${QuotaManager-version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>OrderManager</artifactId>
            <version>${OrderManager-version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>CLDeviceManager</artifactId>
            <version>${CLDeviceManager-version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>LookupManager</artifactId>
            <version>${LookupManager-version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>CLEmailManager</artifactId>
            <version>${CLEmailManager-version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>CLLabelManager</artifactId>
            <version>${ClLabelManager-version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>CLStateTax</artifactId>
            <version>${CLStateTax-version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>DemoSnetManager</artifactId>
            <version>${DemoSnetManager-version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>DemoVmManager</artifactId>
            <version>${DemoVmManager-version}</version>
             <type>jar</type>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>SnetManager</artifactId>
            <version>${SnetManager-version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>tElasticOrchestrationManager</artifactId>
            <version>${tElasticOrchestrationManager-version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>MonitoringManager</artifactId>
            <version>${MonitoringManager-version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>model</artifactId>
            <version>${model-version}</version>
        </dependency>
        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>PolicyManager</artifactId>
            <version>${PolicyManager-version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>DeviceManager</artifactId>
            <version>2.1.0</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>TenantStatusManager</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>orderStatusManager</artifactId>
            <version>1.0</version>
        </dependency>

        <dependency>
            <groupId>com.connectloud</groupId>
            <artifactId>DownloadManager</artifactId>
            <version>${DownloadManager-version}</version>
        </dependency>-->



        <!--        <dependency>
            <groupId>com.wordnik</groupId>
            <artifactId>swagger-jaxrs_2.10</artifactId>
            <version>${swagger-version}</version>
        </dependency>-->
        <!--        <dependency>
            <groupId>com.wordnik</groupId>
            <artifactId>swagger-annotations_2.10</artifactId>
            <version>${swagger-version}</version>
        </dependency>
        <dependency>
            <groupId>com.wordnik</groupId>
            <artifactId>swagger-core_2.10</artifactId>
            <version>${swagger-version}</version>
        </dependency>
        <dependency>
            <groupId>com.wordnik</groupId>
            <artifactId>swagger-jaxrs_2.10</artifactId>
            <version>${swagger-version}</version>
            <exclusions>
                <exclusion>
                    <artifactId>dom4j</artifactId>
                    <groupId>dom4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>-->
        <dependency>
            <groupId>com.wordnik</groupId>
            <artifactId>swagger-servlet_2.9.1</artifactId>
            <version>1.3.0</version>
            <exclusions>
                <exclusion>
                    <artifactId>dom4j</artifactId>
                    <groupId>dom4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>com.wordnik</groupId>
            <artifactId>swagger-jaxrs_2.9.1</artifactId>
            <version>1.3.0</version>
            <exclusions>
                <exclusion>
                    <artifactId>dom4j</artifactId>
                    <groupId>dom4j</groupId>
                </exclusion>
            </exclusions>
            <type>jar</type>
        </dependency>
    </dependencies>

</project>

Regards, Ali Abbas

Ali Abbas
  • 73
  • 4
  • 11
  • Are you getting an error and could you define "not able to see the apis"? – James R. Perkins May 21 '14 at 15:42
  • The response i'm getting is `{ apiVersion: "1.0.0", swaggerVersion: "1.2" }` I'm not getting any error on logs. Seems like swagger is unable found out he service classes. – Ali Abbas May 21 '14 at 18:08
  • Hmm.. ..I don't know much about it, but this makes it seem like it should work in WildFly https://issues.jboss.org/browse/WFLY-831 but probably not JBoss AS 7.x or JBoss EAP 6.x – James R. Perkins May 22 '14 at 16:49

1 Answers1

0

Actually it was due to below mentioned tag, so commented it out and everything works fine.

<!--<context-param> 
<param-name>resteasy.servlet.mapping.prefix</param-name> 
<param-value>/</param-value> 
</context-param>--> 

link of blog from where i identified my error.

Ali Abbas
  • 73
  • 4
  • 11
  • I am getting an Error Like **Failed to load spec** – ShraddhaJ Nov 22 '17 at 05:33
  • can you please help me out about folllowing issue : [link](https://stackoverflow.com/questions/47427206/no-operations-defined-in-spec-error-while-using-resteasy-framework) Facing similar kind of issue – ShraddhaJ Nov 22 '17 at 05:35