У меня есть такая структура моего проекта
EmployeeManager (ухо)
| --EmployeeManagerEJB (баночка)
| --EmployeeManagerJSF (война)
| --EmployeeManagerIntegration (баночка)
объект не является экземпляром класса объявляя при развертывании приложения EAR
EmployeeManager - .ear проект, содержащий X_EJB, X_JSF, X_Integration
EmployeeManagerEJB - проект EJB упаковывается в сосуд, содержащий JPA сущности, EJB Апатриды Bean Реализация
EmployeeManagerJSF - Динамический веб-проект, содержащий верстку страниц и контроллеры
EmployeeManagerIntegration JSF, - интерфейсы, реализованные EJBs (используется в проекте JSF), DTOs
Я использую CDI в EJB Bean Реализации до, например, вставьте один EJB в другой (я ссылаюсь на интерфейс, а не на класс реализации). Я также использую эти безграждающие бобы через CDI в классах контроллера X_JSF. Когда я пытаюсь развернуть EAR я получаю трассировку стека:
16:52:13,694 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.deployment.unit."EmployeeManager.ear".WeldStartService: org.jboss.msc.service.StartException in service jboss.deployment.unit."EmployeeManager.ear".WeldStartService: Failed to start service
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring class
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.jboss.weld.resolution.QualifierInstance.createValues(QualifierInstance.java:128)
at org.jboss.weld.resolution.QualifierInstance.of(QualifierInstance.java:95)
at org.jboss.weld.resolution.ResolvableBuilder.addQualifier(ResolvableBuilder.java:147)
at org.jboss.weld.resolution.ResolvableBuilder.addQualifiers(ResolvableBuilder.java:197)
at org.jboss.weld.resolution.ResolvableBuilder.addQualifiers(ResolvableBuilder.java:192)
at org.jboss.weld.manager.BeanManagerImpl.resolveDecorators(BeanManagerImpl.java:885)
at org.jboss.weld.injection.producer.BeanInjectionTarget.initializeAfterBeanDiscovery(BeanInjectionTarget.java:109)
at org.jboss.weld.injection.producer.InjectionTargetInitializationContext.initialize(InjectionTargetInitializationContext.java:42)
at org.jboss.weld.injection.producer.InjectionTargetService.initialize(InjectionTargetService.java:63)
at org.jboss.weld.bootstrap.WeldStartup.deployBeans(WeldStartup.java:434)
at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:83)
at org.jboss.as.weld.WeldStartService.start(WeldStartService.java:95)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
... 3 more
Это единственный тип ошибки сообщение, которое я получаю от wildfly, не знаю, что может быть неправильно здесь и где начать поиск. Я подозреваю, что ошибка CDI является причиной почему-то, но не знает, как отлаживать или что-то в этом роде. Какие-либо предложения ?
Пример кода с помощью инъекций:
1. Интерфейс
@Local
public interface ChartService extends Serializable {
Collection<String> getSomething();
}
2. Реализация
@Stateless
public class ChartServiceImpl implements ChartService {
@Inject DateService dateService;
}
почтовый индекс, где есть инъекции – fantarama
Я обновил свой пост –
И где вы инъекционные ваши EJB? Не возражаете ли вы также предоставить этот код? – aribeiro