当前位置: 首页 > 知识库问答 >
问题:

在JNDI上调用EJB时ClassCastException

姜聪
2023-03-14
    null
  • MyBeanImpl.java
  • client.java
  • WEB-INF
    • web.xml

    我的本地接口:

    package mypackage;
    
    @Local
    public Interface MyBeanInterface {}
    
    package mypackage;
    
    @Stateless(name = "MyBean")
    public class MyBeanImpl implements MyBeanInterface {}
    
    MyBeanInterface bean = (MyBeanInterface) new InitialContext().lookup("java:comp/env/ejb/MyBean");
    

    我的web.xml

     <ejb-local-ref>
       <ejb-ref-name>ejb/MyBean</ejb-ref-name>
       <ejb-ref-type>Session</ejb-ref-type>
       <local>mypackage.MyBeanInterface</local>
    </ejb-local-ref>
    

    我的例外:

    查找本身起作用。我得到一个推荐人。但当我想用(MyBeanInterface)进行强制转换时,却出现以下错误:

    无法将“Class MyPackage.MyBeanInterface_WHJKP6_MyBeanImpl(由WebLogic.utils.ClassLoaders.GenericClassLoader(ID=28136))”的实例强制转换为“Interface MyPackage.MyBeanInterface(由WebLogic.utils.ClassLoaders.GenericClassLoader(ID=28144))”的实例

    我能做什么?

共有1个答案

钱华晖
2023-03-14

这些类似乎是由不同的类加载器加载的。可能的选择有:

1)确保类由相同的类加载器加载

2)使用反射

1)跨类加载器强制转换?

2)https://community.oracle.com/thread/757133

3)ClassCastException是因为类加载器?

 类似资料:
  • 我试图像下面这样调用这个EJB: 这是我在调用上面的代码时得到的错误: 15:36:10,437信息[org.JBoss.EJB.Client](http-localhost-127.0.0.1-8080-1)JBoss EJB Client version 1.0.5.final 15:36:10,456

  • 我试图使用JBoss7.1.1中的JNDI从远程客户端调用,但我得到了一个异常: 我使用的是jboss的安全机制,并且我已经通过add-user.bat添加了用户,还有带有用户名和密码的jboss-ejb-client.properties文件,但仍然会得到异常。我遵循了链接的示例集:使用JNDI从远程客户端进行EJB调用,当我不使用安全机制时也是如此,但是当我使用安全机制时,就会出现错误 你错过

  • 以前的尝试是让Netbean将EJB模块部署到Netbean可以访问的Glassfish服务器上,该模块以JAR而不是EAR的形式构建。但是,通过CLI使用将该JAR部署到Glassfish可能会遇到错误。 EAR通过CLI部署时没有问题--但是,EJB的JNDI名称似乎不起作用。差异是什么? 32.4.1.1可移植JNDI语法 三个JNDI名称空间用于可移植JNDI查找:java:global、

  • 当我尝试从远程客户端访问在JBoss EAP 6.2中运行的EJB时,我收到以下异常: 我将这些属性用于调用远程ejb方法。 endpoint.name=客户端endpointremote.connectionprovider.create.options.org.xnio.选项。SSL_ENABLED=falseremote.connections=默认remote.connection.def

  • 我目前的问题是,我的机器上运行了两个Wildfly 8.2.0最终实例。我知道,有类似的问题,但没有一个真正有助于我的问题。其中一个拥有一个宁静的应用程序,当它收到GET时,它会触发无状态会话Bean。之后,此无状态会话 Bean 应从远程无状态会话 Bean 调用方法该方法位于另一个 wildfly 实例上。 我将从解释我到目前为止所做的事情开始(也许我错过了一些东西,我对Java EE和Wil

  • 问题:似乎无法通过spring在Webphsere服务器中执行jndi查找EJB3。一直找不到我的jndi名称。我看不出我做错了什么。对于Websphere,您是否必须为jndi名称查找添加不同的内容? 堆栈溢出参考问题-EJB3注入Springbean 版本: Spring版本:4.1.2 WebSphereServer版本:7.0.0.27 Spring错误: 创建名为'myLocalEjb'