我使用Wildfly 17,有两个无状态EJB,其中一个在JNDI查找时有时(但不总是)会导致问题。这是我的EJB:
@Stateless
public class AVeDBService {
//other stuff here
}
当我部署我的应用程序时,我看到上面服务的以下日志:
java:global/heimdi/AVeDBService!at.home.digest.services.AVeDBService
java:app/heimdi/AVeDBService!at.home.digest.services.AVeDBService
java:module/AVeDBService!at.home.digest.services.AVeDBService
ejb:/heimdi/AVeDBService!at.home.digest.services.AVeDBService
java:global/heimdi/AVeDBService
java:app/heimdi/AVeDBService
java:module/AVeDBService
我有一个ServiceLocator类,它是一个单例使用以下JNDI名称查找上述服务的存根:
public class ServiceLocator {
private static final String AVE_DB_SERVICE_JNDI_KEY =
"java:global/heimdi/AVeDBService!at.home.digest.services.AVeDBService";
private Map<String, Object> serviceHolder = new HashMap<String, Object>();
private ServiceLocator() {
try {
Context ctx = new InitialContext();
AVeDBService aveDBService = (AVeDBService) ctx.lookup(AVE_DB_SERVICE_JNDI_KEY);
serviceHolder.put(AVE_DB_SERVICE, aveDBService);
}
}
}
现在,当我使用服务定位器获取服务存根时,我有时会得到下面的异常。但只是有时:
Caused by: java.lang.ClassCastException: class at.home.digest.services.AVeDBService$$$view39 cannot be cast to class at.home.digest.services.AVeDBService (at.home.digest.services.AVeDBService$$$view39 is in unnamed module of loader 'deployment.heimdi.war' @658d7dca; at.home.digest.services.AVeDBService is in unnamed module of loader 'deployment.heimdi.war' @15cdf490)
我在同一个war.模块中使用我的服务,在其中声明(相同的网络应用程序)。但尽管如此,全局查找应该总是工作,还是?这可能是WildFly 17.0中的错误吗?我在类似的相关问题中找不到答案,例如:
Glassfish上EJB的可移植JNDI语法查找
JavaEE6/7中模块和应用程序的jndi绑定有什么区别?
无法转换为类,因为它们在加载器'app'的未命名模块中
非常感谢。
我在Wildfly 24.1中也遇到了同样的问题,问题是EAR项目中类的类加载器,我必须按照提供的那样更改WAR POM中EJB的依赖性,因此最终的EAR只包含EJB类的一个副本,这解决了我的问题
POM示例
当我想在Wildfly 21上部署ear时,我也遇到了同样的问题。要解决这个问题,我所要做的就是在所有会话中将我的@Local
注释更改为@Remote
我想执行GET请求: 当我试图捕获我的HTTPResponse
我是OSGi概念的新手,对于下面的错误,我非常感谢您的帮助。 当运行独立应用程序时没有问题,但是当同一个应用程序放在OSGI包中时,我们得到以下错误。 原因异常java.lang.运行时异常:无法实例化解析器org.apache.xerces.parsers.SAXParser:java.lang.类org.apache.xerces.parsers.SAXParser无法转换为类org.xml.
我们有一个更大的Spring启动应用程序,它会导致以下异常: 从IDEA IntelliJ与JPA类的关系开始。 从普通命令行启动时,应用程序运行良好。 在我们移除依赖之后 IDE内部的执行工作正常,没有任何问题。 我们正在使用: 创意智能2020.1.2 Spring Boot Version 2.3.1, JDK 11.0.7(采用开放式JDK), Apache Maven 3.6.3 有人已
我对一个特殊的班级助手做了一些改变。java,任何时候我尝试将其转换为一个特定的endpoint,我都会收到这个错误消息。堆栈跟踪指向Helpers类。 JAVAClassCastException:class com。聪明的制动辅助系统。模型事务不能强制转换到com类。聪明的制动辅助系统。模型查看(com.cleer.bas.model.Transaction和com.cleer.bas.mod
我有这个问题,想通过NetBeans解决它,我仍然不知道如何从提示符中使用maven,我找到了一个解决方案,但它是从提示符中找到的,有人知道怎么做吗?谢谢 原因:java.lang.ClassCast异常:类java.util.无法将$list12强制转换为类br.edu.iff.projetoEstoque.model.FuncionarioResp(java.util.ImMutableCol
我的错误:- java.lang.ClassCastException:类*不能强制转换为类java.io.Serializable(*位于加载程序'app'的未命名模块中;java.io.Serializable位于加载程序'bootstrap'的模块java.base中) 表示包和类名。