首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >野蝇8-多耳- ClassCastException

野蝇8-多耳- ClassCastException
EN

Stack Overflow用户
提问于 2015-01-29 16:52:14
回答 1查看 497关注 0票数 0

一段时间以来,我一直在试图解决一个问题。

我使用相同的EJB.jar和相同的JPA.jar将两个EAR文件部署到Wildfli8.1.0中,但是使用单独的EJB.jars来“调度”A.K.A,运行EJB中的不同函数。调度程序访问EJB.jars,而后者又访问JPA.jars。两个EAR/JPAs都使用相同的数据库。

这两只耳朵的布置如下:

EAR1:

  • SCHEDULER1-EJB.jar
  • EJB.jar
  • lib\JPA.jar

EAR2:

  • SCHEDULER2-EJB.jar
  • EJB.jar
  • lib\JPA.jar

一切都部署得很好,但是在运行了几分钟的调度程序之后,我得到了一个用于用户定义类的ClassCastException。示例:

代码语言:javascript
复制
java.lang.ClassException: persistence.Foo cannot be cast to persistence.Foo

我尝试过使用依赖、类路径和耳隔离技术,但无法解决我的问题。

只有在部署和运行两个EAR时才会出现此问题,单独运行时不会出现任何问题。

欢迎提出任何建议。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-30 08:42:05

我不知道Jboss如何在内部处理具有相同名称的持久性单元,但是在这些单元之间似乎有一些共享的过程。其中一个JPA.jars已经在缓存中保存了一个对象,然后另一个JPA.jar尝试重用它。

应用程序-服务器为每个ear/war创建自己的类加载器。您尝试将一个对象从war1传递给war2,而war2尝试转换该对象,但不能。

解决方案:创建一个EAR,包含您的JPA和EJB.jar,并部署两个调度jars。

您的部署文件夹将如下所示:

。)Backend.ear

。)Schedular1.jar

。)Schedular2.jar

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28220183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档