0 Replies Latest reply: Dec 5, 2012 9:09 AM by 978171 RSS

    EJB with network-access-point exception "getServerChannel() not supported."


      My task is to get a specific remote bean only to be available on a certain port (still using the t3 protocol). The bean is called MyRemoteBeanEJB. I have tried to accomplish this with the use of network-access-point In my weblogic-ejb-jar.xml:


      And on the AdminServer i have created a channel called MyChannel ( [Network Channel|http://i.imgur.com/3tss0.png] ). I'm running Weblogic Server 10.3.2 with EJB3.0.

      The channel is active (from the debug output):
      <Notice> <Server> <BEA-002613> <Channel "MyChannel[11]" is now listening on for protocols t3.>

      THEN from my fat client i look up the remote bean, everything works fine,

      MyRemoteBeanInterface remoteBean = ic.lookup(..); // t3://localhost:7042

      BUT when i try to call a method I get the following output on the server:

      <2012-dec-05 kl 15:56 CET> <Warning> <RMI> <BEA-080004> <An error was thrown by rmi server:
      java.lang.AssertionError: getServerChannel() not supported.
      java.lang.AssertionError: getServerChannel() not supported
      at weblogic.rjvm.RJVMImpl.getServerChannel(RJVMImpl.java:769)
      at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:568)
      at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
      at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477)
      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
      at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
      at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:473)
      at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
      at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
      at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

      If I remove the network-access-point tag it works (but I loose the point of restricting the bean to a certain port).

      I decompiled the weblogic.rjvm.RJVMImpl class found in wlfullclient.jar (the client jar with all weblogic deps), and at line 769:

      public ServerChannel getServerChannel() {
      throw new AssertionError("getServerChannel() not supported");

      Google let me down and really, i have no idea what's wrong.... Maybe i'm not using it in an expected way or i'm missing something.

      Anybody with any insights or even better, solutions?!