Enunciate: Почему в моем wadl все атрибуты пути к ресурсам имеют префикс "/rest"?
Класс ресурса определяется следующим образом:
@Path("v1")
@Produces({MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public class RestApi {
И у меня есть метод, определенный следующим образом:
@GET
@Path("patients")
public String patients(
Когда я запускаю команду maven для запуска цели enunciate doc, сгенерированный wadl выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<wadl:application xmlns:wadl="http://wadl.dev.java.net/2009/02" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<wadl:doc xmlns:enunciate="http://enunciate.codehaus.org/" enunciate:generatedBy="Enunciate-1.27"/>
<wadl:grammars>
<wadl:include href="ns0.xsd"/>
</wadl:grammars>
<wadl:resources base="http://localhost:8888/app/api">
...
<wadl:resource path="/rest/v1/patients">
<wadl:method name="GET">
Откуда этот "/rest/" идет по пути к ресурсу? Я искал везде в моем проекте, и нет никаких ссылок на него.
Вот мой конфигурационный файл enunciate.xml:
<enunciate label="Rest API"
xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.28.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<deployment host="localhost:8888" context="/app/api"/>
</enunciate>
1 ответ
Решение
Видимо "/rest" это просто значение по умолчанию. Вы можете изменить его на ничто, добавив его в файл enunciate.xml:
<services>
<rest defaultRestSubcontext="/" />
</services>