Я использую EJB 2.x. У меня есть 2 машины, обе на WebSphere 7.0. На каждом из них развернуты разные приложения. Когда я пытаюсь из одного приложения (на машине 1) вызвать EJB другого приложения (на машине 2), я получаю следующую ошибку:
java.rmi.MarshalException: CORBA MARSHAL 0x4942f999 Нет; вложенное исключение: org.omg.CORBA.MARSHAL: данные профиля длиной 0x3f400000 при чтении профиля IOR vmcid: дополнительный код IBM: 999 завершено: нет
Кто-нибудь знает, как решить эту проблему, потому что я в значительной степени застрял в этой проблеме. Спасибо!
Изменить:
Для вызова EJB я использовал общий подход:
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");
props.put(Context.PROVIDER_URL, "iiop://remote.host.com:2809");
props.put(Context.SECURITY_PRINCIPAL, "remote_user");
props.put(Context.SECURITY_CREDENTIALS, "remote_pwd");
Context ctx = new InitialContext(props);
Object objRef = ctx.lookup("servicemanagerJndiName");
ServiceManagerHome home = (ServiceManagerHome) PortableRemoteObject.narrow(
objRef, ServiceManagerHome.class);
manager = home.create();
manager.getMethod();...
Дело в том, что этот вызов службы правильно инициируется на удаленном сервере, и ответ отправляется, только на стороне клиента, я получаю следующую ошибку:
И это ошибка, которую я получаю [SoapConnectorThreadPool: 5] [] ERROR java.rmi.MarshalException: CORBA MARSHAL 0x4942f999 Нет; вложенное исключение: org.omg.CORBA.MARSHAL: данные профиля длиной 0x3f400000 при чтении профиля IOR vmcid: дополнительный код IBM: 999 завершено: нет в com.ibm.CORBA.iiop.UtilDelegateImpl.mapSystemException(UtilDelegateImpl.java:277) в javax.rmi.CORBA.Util.mapSystemException(Util.java:84) в com.host.local.manager._ServiceManager_Stub.getMethod(_ServiceManager_Stub.java):