Jakarta ee 对象不是部署EAR应用程序时声明类的实例

Jakarta ee 对象不是部署EAR应用程序时声明类的实例,jakarta-ee,ejb,cdi,ear,illegalargumentexception,Jakarta Ee,Ejb,Cdi,Ear,Illegalargumentexception,我的项目有这样的结构 员工经理(ear) |--员工经理(jar) |--员工经理(war) |--员工管理整合(jar) EmployeeManager-.ear项目包含X_EJB、X_JSF和X_集成 EmployeeManagerEJB-打包到包含JPA实体、EJB无状态Bean实现的jar中的EJB项目 EmployeeManagerJSF-包含JSF的xhtml页面和控制器的动态web项目 EmployeeManagerIntegration—由EJB实现的接口(用于JSF项目)、DT

我的项目有这样的结构
员工经理(ear)
|--员工经理(jar)
|--员工经理(war)
|--员工管理整合(jar)

EmployeeManager-.ear项目包含X_EJB、X_JSF和X_集成
EmployeeManagerEJB-打包到包含JPA实体、EJB无状态Bean实现的jar中的EJB项目
EmployeeManagerJSF-包含JSF的xhtml页面和控制器的动态web项目
EmployeeManagerIntegration—由EJB实现的接口(用于JSF项目)、DTO

我在EJBbean实现中使用CDI,例如将一个EJB注入另一个EJB(我是通过接口引用,而不是通过实现类引用)。我还在X_JSF的控制器类中通过CDI使用这些无状态bean。当我尝试部署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();
}

1.,使用限定符标识可注入实现

@Stateless
public class ChartServiceImpl implements ChartService {
    @Inject DateService dateService;
}

2.,使用@Alternative并在beans.xml中声明其中一个备选方案


post代码哪里有注入我已经更新了我的post,您在哪里注入EJB?你介意也提供那个代码吗?我刚想出来。有一天,我使用了一些教程来描述创建自己的限定符注释,其中的参数是类类型。只要我的项目是单打,一切都很顺利,但最终这就是原因。无论如何,谢谢你们抽出时间