У меня есть WAR с некоторыми услугами JAX-RS, развернутыми в TomEE Plus. Учитывая услугу, аннотированную @Path("myservice")
, TomEE + публикует ее до localhost:8080/mywebapp/myservice
.Как настроить базовый путь JAX-RS в TomEE +?
Однако, это также делает доступ к JSP при localhost:8080/mywebapp/index.jsp
невозможным - JAXRSInInterceptor жалуется, что No root resource matching request path has been found, Relative Path: /index.jsp
.
Поэтому я хотел бы настроить префикс пути api
для всех служб, который изменяет адрес myservice
на localhost:8080/mywebapp/api/myservice
. Это было бы тривиально, если бы я сам сконфигурировал CXF (с Spring или без него), потому что я мог просто изменить шаблон URL-адреса CSM-сервлета, но я полагаюсь на настройки по умолчанию, где я не настраиваю ничего, кроме аннотаций. Итак, как мне это сделать в этом случае?
Обратите внимание, что я не хочу изменять аннотации @Path
, чтобы включить префикс, потому что это не устраняет проблему с JSP.
Хорошо, это работает, спасибо! Тем не менее, я бы предпочел способ сделать это, что не заставило меня реализовать метод getClasses(). Когда у меня нет класса «Приложение», мои ресурсы обнаруживаются автоматически, но когда у меня есть один и не перезаписываются 'getClasses()', ресурсы не создаются :-( –
Я бы рекомендовал взять посмотрите на API-интерфейсы CXF, если они обрабатывают подобные ситуации (Джерси, см. [ResourceConfig # packages] (https://jersey.java.net/apidocs/latest/jersey/org/glassfish/jersey/server/ResourceConfig .html # packages (java.lang.String ...)), так что это не редкость). –