2014-04-29 1 views
0

J'utilise enunciate pour générer ma documentation d'api de repos, au début cela fonctionnait bien à moins d'ajouter une dépendance de ressort à mon projet.
Mon pom actuel:Impossible d'accéder à la documentation générée par l'énunciate à partir de la guerre déployée dans le navigateur

<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> 

configuration ci-dessus est la génération de documents dans le répertoire api en guerre généré. Je suit enunciate.xml configuration:

<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> 

docs sont générés correctement, mais quand je suis en train de frapper son http://localhost:8080/amg-web/api/index.html donner 404 réponse.! J'ai vérifié avec la guerre extraite dans tomcat webapp où répertoire api est généré avec succès avec tous les fichiers requis, mais toujours pas en mesure d'y accéder à partir de l'application déployée dans le navigateur. aidez s'il vous plaît.

Répondre

0

Je pense avoir trouvé la solution. Il peut être lié soit à une ancienne version d'enunciate que j'utilise, c'est-à-dire v1.26, soit à plusieurs <url-pattern> dans mon web.xml.
j'ajouté servlet mapping supplémentaires et ça a marché ..

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

/api/ est le chemin de ma documentation api. Je n'ai toujours pas compris pourquoi il y a nécessité. Ce serait génial si quelqu'un m'expliquait ça.

Questions connexes