2011-08-17 11 views
5

Ho la seguente annotazione nel mio codice RESTEasy:Come si modifica il contesto REST generato da enunciare?

@Path("/v1/authenticateService") 

enunciare genera un "punto di montaggio" nella documentazione come:

/rest/v1/authenticateService/authenticate 

Ho provato con il seguente nel mio enunciate.xml, per ignorare il "/ resto" contesto:

<services> 
    <rest defaultRestSubcontext="/gateway-service-access-pox" /> 
</services> 

ho anche provato quanto segue, ma non ha fatto nulla, o:

<deployment protocol="https" host="(host)" context="/gateway-service-access-pox" /> 

Sto usando enunciato 1.23 per generare documenti per un progetto Maven 3, multi-modulo.

Ecco ciò che è scritto nella console:

[INFO] --- maven-site-plugin:3.0:site (default-cli) @ gateway-service-access-pox --- 
[INFO] configuring report plugin org.apache.maven.plugins:maven-project-info-reports-plugin:2.4 
[INFO] configuring report plugin org.codehaus.enunciate:maven-enunciate-plugin:1.23 
[WARNING] No project URL defined - decoration links will not be relativized! 
[INFO] Rendering site with org.apache.maven.skins:maven-default-skin:jar:1.0 skin. 
[INFO] Generating "About" report --- maven-project-info-reports-plugin:2.4 
[INFO] Generating "Web Service API" report --- maven-enunciate-plugin:1.23 
[INFO] initializing enunciate. 
[INFO] invoking enunciate:generate step... 
[INFO] invoking enunciate:compile step... 
[INFO] invoking enunciate:build step... 
[INFO] closing enunciate. 

Qualsiasi idea di cosa sto facendo male?

More info ... L'enunciate.xml completo (nel caso ci sia un problema che riguarda la voce:

<?xml version="1.0"?> 
<enunciate label="platform-gateway-api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.23.xsd"> 

<api-import pattern="com.intuit.platform.gateway.common.DetailedResponse" /> 
<api-import pattern="com.intuit.platform.gateway.service.access.domain.*" /> 
<api-import pattern="com.intuit.platform.gateway.service.identity.domain.Identity" /> 

<deployment protocol="https" host="(host)" context="/gateway-service-access-pox" /> 

<namespaces> 
    <namespace uri="http://schema.intuit.com/platform/integration/detailedResponse/v1" id="common" /> 
    <namespace uri="http://schema.intuit.com/platform/identity/user/v1" id="user" /> 
    <namespace uri="http://schema.intuit.com/platform/access/token/v1" id="token" /> 
</namespaces> 

<services> 
    <rest defaultRestSubcontext="/gateway-service-access-pox" /> 
</services> 

<modules> 
    <!-- Docs --> 
    <docs splashPackage="com.intuit.platform.gateway.service.ticket.api" title="Platform Gateway Access API" 
     copyright="Intuit Inc"> 
     <download name="License" file="LICENSE.txt" description="The license file governing the use of this API." /> 
    </docs> 
    <!-- Disable all the client generation tools --> 
    <basic-app disabled="true" /> 
    <c disabled="true" /> 
    <csharp disabled="true" /> 
    <java-client disabled="true" /> 
    <jaxws-client disabled="true" /> 
    <jaxws-ri disabled="true" /> 
    <jaxws-support disabled="true" /> 
    <jersey disabled="true" /> 
    <obj-c disabled="true" /> 
    <xml disabled="true" /> 
</modules> 
</enunciate> 

A proposito, se non v'è modo migliore per ottenere aiuto su questo tema (una sorta di bug forum), per favore fatemelo sapere.Io sono un novizio con enunciato e non so se questo fosse un bug o la mia ignoranza

+0

È forse questo problema? https://github.com/stoicflame/enunciate/issues/14 Tuttavia, funziona per me.Inoltre, non riesco a vedere l'attributo _docsDir_ impostato nell'elemento - se non hai generato il documento nella radice, devi dire dove intendi metterlo, quindi Enuncia genera un percorso relativo corretto per la tua API. – Pavel

risposta

2

come ha detto Ryan il "defaultRestSubcontext" funziona.Ad esempio l'ho usato in questo modo per rimuovere "resto" dal punto di montaggio generato predefinito:

<servizi>
< riposo defaultRestSubcontext = "/"/>
</servizi >

Se uno defaultRestSubcontext impostato su "/" inizia la generazione da "/" e poi seguita da percorso del punto finale.

P.S. Sto usando enunciare 1.24

1

Beh ... ho stare con questo per due giorni e, infine, si sta lavorando e il punto di montaggio ha corretto sottocontesto resto di default :)

2 cose che ho fatto per farlo funzionare.

  1. attivare il modulo XML

    <xml disabled="false" /> 
    
  2. Aggiungi vaso enunciate-xml a runtime.

Non so perché, ma ora funziona per me.

Problemi correlati