1 Reply Latest reply on Dec 30, 2019 1:15 PM by 4147621

    Calling EJB2.0 bean deployed in 11g container from  application run in 12c

    4147621

      Hello mates.

       

      We have a requirement in which a legacy logic is present as ejb2 bean which is running  in 11g container. And we have a new application which is developed  in jdk 8  running  in weblogic 12c.

      The 12c application invokes the remote bean using JDNI lookup by passing the t3 url and context of the remote server in which the bean is deployed. 

       

      We see unmarshall error is thrown in the application logs.  We have checked the  connectivity using telnet command and it is working fine as well.  Is it not possible to invoke  a EJB2.0 running in 11g container from 12c?  . In the old legacy flow, both the producer and consumer of the EJB are in 11g and flow is working fine. The issue we are seeing one the producer is running in 11g and consumer is running in 12c container.  

       

      Below is the logs with the exception.

       

      javax.naming.CommunicationException: invoking method lookup(Ljava.lang.String;Ljava.util.Hashtable;) caused java.io.IOException: RJVM has already been shutdown, please check method's implementation for the cause ; nested exception is:

              java.io.IOException: RJVM has already been shutdown [Root exception is java.rmi.UnmarshalException: invoking method lookup(Ljava.lang.String;Ljava.util.Hashtable;) caused java.io.IOException: RJVM has already been shutdown, please check method's implementation for the cause ; nested exception is:

              java.io.IOException: RJVM has already been shutdown]

              at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:78)

              at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:36)

              at weblogic.jndi.internal.WLContextImpl.translateException(WLContextImpl.java:541)

              at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:453)

              at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:435)

              at javax.naming.InitialContext.lookup(InitialContext.java:417)

              at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)

              at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286)

              at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)

              at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)

              at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350)

              at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)

              at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)

              at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)

      Caused by: java.rmi.UnmarshalException: invoking method lookup(Ljava.lang.String;Ljava.util.Hashtable;) caused java.io.IOException: RJVM has alreadybeen shutdown, please check method's implementation for the cause ; nested exception is:

              java.io.IOException: RJVM has already been shutdown

              at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:564)

              at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:313)

              at weblogic.jndi.internal.ServerNamingNode_12213_WLStub.lookup(Unknown Source)

              at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:449)

              ... 48 more

      Caused by: java.io.IOException: RJVM has already been shutdown

              at weblogic.rjvm.RJVMImpl.addPendingResponse(RJVMImpl.java:726)

              at weblogic.rjvm.RJVMImpl.send(RJVMImpl.java:1165)

              at weblogic.rjvm.MsgAbbrevOutputStream.flushAndSend(MsgAbbrevOutputStream.java:448)

              at weblogic.rjvm.MsgAbbrevOutputStream.sendRecv(MsgAbbrevOutputStream.java:458)

              at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:128)

              at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:552)

              ... 51 more

      Caused by: java.io.IOException: RJVM has already been shutdown

              at weblogic.utils.StackTraceDisabled.unknownMethod()

        • 1. Re: Calling EJB2.0 bean deployed in 11g container from  application run in 12c
          4147621

          After enabling few debug logs, we can see the below details as well.

           

          rnel.Default (self-tuning)'> <<anonymous>> <> <f6fca643-8fec-426f-bde0-95beecefc7b1-00001832> <1577170086815>

          <[severity-value: 8] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] > <BEA-000580>

          <Failed to send JVMMessage from: '-7611783347045851367S:<SOURCE>:<SOURCE>'

          to: '4669540677590484611S:<TARGET>:[9721,-1,-1,-1,-1,-1,-1]

          cmd: 'CMD_IDENTIFY_REQUEST', QOS: '101', responseId: '-1', invokableId: '-1',

          flags: 'JVMIDs Sent, TX Context Not Sent, 0x0', abbrev offset: '252'.

          java.io.IOException: Attempt to send message on closed socket

          java.io.IOException: Attempt to send message on closed socket

                  at weblogic.rjvm.t3.MuxableSocketT3$T3MsgAbbrevJVMConnection.sendMsg(MuxableSocketT3.java:817)

                  at weblogic.rjvm.MsgAbbrevJVMConnection.sendOutMsg(MsgAbbrevJVMConnection.java:389)

                  at weblogic.rjvm.MsgAbbrevJVMConnection.sendMsg(MsgAbbrevJVMConnection.java:223)

                  at weblogic.rjvm.MsgAbbrevJVMConnection.sendMsg(MsgAbbrevJVMConnection.java:173)

                  at weblogic.rjvm.ConnectionManager.findOrCreateConnection(ConnectionManager.java:1742)

                  at weblogic.rjvm.ConnectionManager.findOrCreateConnection(ConnectionManager.java:1418)

                  at weblogic.rjvm.ConnectionManager.sendMsg(ConnectionManager.java:614)

                  at weblogic.rjvm.RJVMImpl.send(RJVMImpl.java:1168)

                  at weblogic.rjvm.MsgAbbrevOutputStream.flushAndSend(MsgAbbrevOutputStream.java:448)