Как изменить контекст REST, сгенерированный enunciate?
У меня есть следующая аннотация в моем коде RESTEasy:
@Path("/v1/authenticateService")
Enunciate генерирует "точку монтирования" в документации как:
/rest/v1/authenticateService/authenticate
Я попытался использовать следующее в моем enunciate.xml, чтобы переопределить контекст "/rest":
<services>
<rest defaultRestSubcontext="/gateway-service-access-pox" />
</services>
Я также попробовал следующее, но ничего не сделало:
<deployment protocol="https" host="(host)" context="/gateway-service-access-pox" />
Я использую enunciate 1.23 для создания документов для многомодульного проекта Maven 3.
Вот что написано в консоли:
[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.
Есть идеи, что я делаю не так?
Подробнее... Полный enunciate.xml (в случае, если существует проблема, влияющая на запись:
<?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>
Кстати, если есть лучший способ получить помощь по этому вопросу (какой-то форум ошибок), пожалуйста, дайте мне знать. Я новичок в enuncate и не знаю, была ли это ошибка или мое невежество.
2 ответа
Как сказал Райан, "defaultRestSubcontext" работает. Например, я использовал его таким образом, чтобы удалить "rest" из сгенерированной по умолчанию точки монтирования:
<услуги>
Услуги>
Если установить значение defaultRestSubcontext равным "/", генерация начинается с "/", а затем следует путь к конечной точке.
PS Я использую Enunciate 1.24
Ну... у меня есть пара дней, и наконец это работает, и точка монтирования имеет правильный подконтекст отдыха по умолчанию:)
2 Что я сделал, чтобы это сработало.
включить модуль XML
<xml disabled="false" />
Добавьте enunciate-xml jar во время выполнения.
Я не знаю, почему это так, но сейчас это работает для меня.