2016-03-03 16 views
0

У меня есть такая структура моего проекта
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; 
} 
+0

почтовый индекс, где есть инъекции – fantarama

+0

Я обновил свой пост –

+0

И где вы инъекционные ваши EJB? Не возражаете ли вы также предоставить этот код? – aribeiro

ответ