【发布时间】:2015-11-15 20:22:23
【问题描述】:
我通过将 EJB 包移动到 WEB 模块而不是 EJB 模块来修复它。有人知道为什么吗?
我不断收到以下错误。它说 EditEnterpriseSessionBean 与 EditEnterpriseSessionBean$$$view81 不是同一个类。
错误由三部分组成:
21:18:36,880 错误 [io.undertow.request](默认任务 40)UT005023:对 /EntWeb/ListEnterprisesServlet 的异常处理请求:javax.servlet.ServletException:UT010013:无法实例化 ListEnterprisesServlet强> [..]
原因:java.lang.IllegalStateException: WFLYEE0042: 未能构造组件实例 [..]
原因:java.lang.IllegalArgumentException:无法将 EditEnterpriseSessionBean 字段 ListEnterprisesServlet.edtEnterprise 设置为 EditEnterpriseSessionBean$$$view81 在 sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException (UnsafeFieldAccessorImpl.java:167) 在 sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException (UnsafeFieldAccessorImpl.java:171) 在 sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81) [...]
你对这个有什么想法吗?
提前致谢!
完整的堆栈跟踪:
Context Path:/EntWeb
Servlet Path:/AddOrderServlet
Path Info:null
Query String:null
Stack Trace
javax.servlet.ServletException: UT010013: Could not instantiate AddOrderServlet
io.undertow.servlet.core.ManagedServlet$DefaultInstanceStrategy.start(ManagedServlet.java:227)
io.undertow.servlet.core.ManagedServlet.getServlet(ManagedServlet.java:169)
io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)
io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:72)
io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:282)
io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:261)
io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:80)
io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:172)
io.undertow.server.Connectors.executeRootHandler(Connectors.java:199)
io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:774)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)
【问题讨论】:
-
我通过将我的 EJB 类从我的 EJB 模块移动到我的 WEB 模块来修复它。为什么它现在有效,而不是以前!?
-
你在部署耳朵吗?
-
@JohnAment 是的,我部署了一个 EAR,将 EJB、Web 和 JPA 作为模块。我检查了一下,ejb.jar(和 web.war)在 .ear 文件中。
-
请提供您的完整堆栈跟踪。如果我不得不猜测,您最终会在 EAR 中使用重复的类,检查您的输出 EAR 将是确认的唯一方法。一般来说,并不特别鼓励 EAR 部署。
-
@JohnAment 感谢您的努力!我在帖子中添加了堆栈跟踪。
标签: jakarta-ee ejb cdi