1 Reply Latest reply on Nov 13, 2003 6:09 AM by flitzie

    Connecting with CORBA to JBoss EJB - problem with Strings

    frodo1

      I am trying to connect to EJB on Jboss server via CORBA interface client. First of all, the bean itself is pretty simple: the functional part that I am testing now is just:

      public String hello()
      {
      System.out.println("In hello");
      return "Howdy!";
      }

      (I am skipping all EJB wrapping, of course) and it works perfectly via RMI interface client. However, when I try to run it via CORBA interface client, it either throws me this exception:

      org.omg.CORBA.MARSHAL: No class description available (value_tag indicates
      no type information present) vmcid: 0x0 minor code: 0 completed: No

      or just says: Exception in thread "main" java.lang.OutOfMemoryError

      I tried another bean, which accepts and returns numbers - it works fine both with CORBA and RMI. So I guess it has something to do with strings. But I don't know what exactly I am doing wrong. What I noticed is that org.omg.CORBA.MARSHAL message appears when I define the hello operation in IDL as ::CORBA::WStringValue hello( ); (that's roughly what rmic tool
      generates), while OutOfMemory appears when I define it in IDL as just "string hello( );". I couldn;t find which of methods is the right one - different manuals suggest different things.
      And I couldn't find an explanation why neither of the methods work.

      Any ideas?

        • 1. Re: Connecting with CORBA to JBoss EJB - problem with String
          flitzie

          Hi Frodo

          This sounds to me as a typical wstring demarshalling problem.
          Since you skipped all EJB wrapping every java String will be marshalled as multibyte CORBA string so called wstring (= ::CORBA::WStringValue).
          I guess that you run your corba client with Sun's internal ORB. This is not very surprisingly because it is buggy. I suggest you to use OpenORB or JacORB.

          Good luck

          flitzie