在websphere 8.5

时间:2016-02-29 08:57:48

标签: spring-mvc swagger websphere-8

我已经使用swagger插件为maven创建了一个REST Spring-MVC web服务。这是我的pom中的插件定义和目标:

<plugin>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-codegen-maven-plugin</artifactId>
            <version>2.1.5</version>
            <executions>
                <execution>
                    <id>generate-spring-mvc</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <inputSpec>${project.build.sourceDirectory}/../resources/api.yaml</inputSpec>
                        <language>spring-mvc</language>
                        <modelPackage>com.myproject.ws.gen.model</modelPackage>
                        <apiPackage>com.myProject.ws.gen.api</apiPackage>
                        <templateDirectory>${project.build.sourceDirectory}/../templates/JavaSpringMVC</templateDirectory>
                        <configOptions>
                            <sourceFolder>src/main/java</sourceFolder>
                            <groupId>${project.groupId}</groupId>
                            <artifactId>${project.artifactId}</artifactId>
                            <version>${project.version}</version>
                        </configOptions>
                    </configuration>
                </execution>
                <execution>
                    <id>generate-yaml-dist</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <inputSpec>${project.build.sourceDirectory}/../resources/api.yaml</inputSpec>
                        <language>swagger</language>
                        <output>${project.build.directory}/site/api</output>
                        <addCompileSourceRoot>false</addCompileSourceRoot>
                    </configuration>
                </execution>
            </executions>
        </plugin>

该插件接受api.yaml文件,其中包含API的定义并使用spring注释生成java代码,此外,我使用CORS过滤器来管理请求。 当我在Websphere Liberty概要文件服务器中部署war时,所有运行都运行正常,但是当我尝试在完整的WebSphere 8.5中执行相同操作时,我总是从服务器获得“File not found”按钮。

我已经检查过应用程序是否正确安装,并且生成的REST API的.class文件打包在.war中,并且请求由CORS过滤器处理,但由于某种原因它仍然无效。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

可能区别在于CORS支持或错误配置的CORS支持。

WebSphere Liberty中,使用cors标记在server.xml中配置支持。

在WebSphere Traditional 8.5中,您可能需要添加一些here所述的JAR文件以及相关的应用程序配置。

答案 1 :(得分:0)

如果您使用的是标准的JEE servlet过滤器,那么它应该适用于Liberty和WAS传统。看起来你并没有使用Liberty的原生CORS配置,所以我假设一个常规的servlet过滤器。

您是否尝试从不触发CORS的客户端(即:Java客户端)访问您的端点,以确保该应用程序确实在您的WAS传统环境中运行并可访问?除了在您的应用程序中实际注册过滤器之外,手动CORS过滤器始终无需特殊配置。