Проблема: я продолжаю получать исключение WELD ниже при попытке развернуть мою WAR в Glassfish 4.1.1. Приложение правильно развертывается на Wildfly 9.0.Исключение Weld 001508 на Glassfish 4: как игнорировать интерфейс (ы)?
Исключение при загрузке приложения: java.lang.IllegalStateException: ContainerBase.addChild: Начало: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: org.jboss.weld.exceptions.DefinitionException: WELD-001508: Невозможно создать InjectionTarget из [EnhancedAnnotatedTypeImpl] общественного абстрактного интерфейса @Path класса com.example.package.MyService как это интерфейс
Здесь MyService
действительно интерфейс, определенный в отдельном библиотека. Мое приложение вытаскивает библиотеку, чтобы создать прокси-сервер против интерфейса MyService
и делать запросы. MyService
выглядит следующим образом:
@Path("api")
public interface MyService {
@GET
public void someMethod();
}
Я попытался исключить MyService
из WELD, добавив следующие строки в файл beans.xml
, но безрезультатно :(
<scan>
<exclude name="com.example.package.*"></exclude>
</scan>
- Почему WELD пытается включить интерфейс этой библиотеки?
- Как я могу сказать, чтобы игнорировать его?
У вас есть метод производителя, определенный для этого интерфейса? Я согласен с этим контекстом, это не совсем понятно. –
Нет, никакого метода продления ... – Rodrigo