当前位置: 首页 > 知识库问答 >
问题:

无法从浏览器中部署的war中访问声明生成的文档

何超英
2023-03-14

我正在使用enuncicate来生成我的restapi文档,最初它运行良好,除非我将spring依赖添加到我的项目中
我当前的pom:

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>3.2.5.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.2.5.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>3.2.5.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>3.2.5.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-rest-webmvc</artifactId>
        <version>2.0.2.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-neo4j</artifactId>
        <version>3.0.1.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-neo4j-rest</artifactId>
        <version>3.0.1.RELEASE</version>
    </dependency>  
            <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>1.0.0.GA</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.18.1</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>1.18.1</version>
    </dependency>  
    <dependency>
        <groupId>org.codehaus.enunciate</groupId>
        <artifactId>enunciate-rt</artifactId>
        <version>1.26</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <webResources>
                    <resource>
                        <directory>src/main/webapp</directory>
                        <filtering>true</filtering>
                        <includes>
                            <include>index.html</include>
                        </includes>
                    </resource>
                </webResources>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.codehaus.enunciate</groupId>
            <artifactId>maven-enunciate-plugin</artifactId>
            <version>1.26</version>
            <configuration>
                <configFile>src/main/resources/enunciate.xml</configFile>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>assemble</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>org.codehaus.enunciate</groupId>
                                    <artifactId>maven-enunciate-plugin</artifactId>
                                    <versionRange>[1.26,)</versionRange>
                                    <goals>
                                        <goal>assemble</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <ignore></ignore>
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
</build>  

上面的配置是在war generated下的< code>api目录下生成单据。我有如下的expertion . XML配置:

<enunciate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.26.xsd">
<webapp mergeWebXML="../webapp/WEB-INF/web.xml"></webapp>
<modules>
    <docs splashPackage="com.pack.resources" docsDir="api" title="My API" copyright="amg" includeDefaultDownloads="true" />
    <jersey useSubcontext="true" />
</modules>

文档生成正确,但是当我尝试点击 http://localhost:8080/amg-web/api/index.html 它给出 404 响应时。!我在 tomcat webapp 中检查了提取的战争,其中 api 目录已成功生成所有必需的文件,但仍然无法从浏览器中部署的应用程序访问它。请帮忙。

共有1个答案

松霖
2023-03-14

我想我找到了解决方案。它可能与我正在使用的旧版本的发音有关,即v1.26,或者有多个

    <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/api/*</url-pattern>
</servlet-mapping>  

其中 /api/ 是我的 API 文档的路径。我仍然不明白为什么有必要这样做。如果有人向我解释这一点,那就太好了。

 类似资料:
  • 我有一个Spring启动Rest服务项目,它在我的本地机器上工作。当我运行应用程序为"Spring Boot App" 我可以通过转到访问rest服务 http://127.0.0.1:8080/persons/all 它返回JSON,因为它应该。 我换了pom。xml打包到war,然后我创建了一个war,作为- war文件名为“myapp-0.0.1-SNAPSHOT.war”,上传后,我试图通

  • 我编写了一个非常简单的spring boot应用程序,并将其打包在Docker中。 docker文件的内容是: 我把它推到了docker hub。 我在aws上创建了一个新的EC2实例。然后我连接到它并键入以下命令: 最后一个命令在屏幕上给出了许多消息,表示spring boot应用程序正在运行。 看起来很棒。但是,当我打开浏览器并键入:http://ec2-54-86-87-68.compute

  • 我在我的ubuntu 18.04系统上安装了tomcat 8。后来,我从地理服务器页面下载了地理服务器Web存档,并在/var/lib/tomcat8/webapps上部署了war文件。Tomcat 在部署 war 文件之前工作正常。[ 本地主机:8080] 工作正常。但是我遇到的问题是,在webapps目录中部署地理服务器战争后,tomcat没有在浏览器上加载。 我使用命令sudo servic

  • 我在IDEA中创建了一个eureka项目,效果很好。但是当我把它打包成war,扔到tomcat 8.5的webapp目录下。重启tomcat后,我无法通过url localhost:8761访问它 尤里卡应用.java 应用程序.yml

  • 我在Docker有个Jenkins集装箱。 当我成功构建某个东西时,我希望将其部署到一个glassfish docker容器中。 https://docs.oracle.com/cd/e19798-01/821-1757/ghgmi/index.html https://github.com/jenkinsci/postbuildscript-plugin

  • 我正在开发一个web应用程序,并使用maven部署我的WAR。我使用的其他技术有spring、hibernate、java 6、windows 7和eclipse。 以下是在我的WAR无法启动后,我从tomcat日志中得到的一个错误 这是我的pom。xml文件。