Я пытаюсь вызвать удаленный EJB-сервис (услуга MDM) с использованием профиля Liberty 16.0.0.3. Мой код поиска выглядит ниже.org.omg.CORBA.MARSHAL: Valuetype не реализует StreamableValue или CustomMarshal
ctx = new InitialContext();
Object obj =
ctx.lookup("corbaname:iiop:myhost:9810/NameServiceServerRoot#com/dwl/base/requestHandler/beans/DWLServiceController");
dwlServiceControllerHome = (DWLServiceControllerHome)PortableRemoteObject.narrow(obj, DWLServiceControllerHome.class);
dwlServiceController = dwlServiceControllerHome.create();
HashMap<String, String> contextMap = createContextMap();
String response = dwlServiceController.processRequest(contextMap, wccReqString).toString().trim();
try {
StringReader reader = new StringReader(response);
StreamSource streamSource = new StreamSource(reader);
tcrmResp = (TCRMService) providerMarshaller.unmarshal(streamSource);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
С выше кода я могу иметь возможность удаленного вызова EJB service.Positive сценарий работает без каких-либо issue.When мы тестируем услугу с данными негативных сценариев (Когда служба удаленного EJB бросить Пользовательские допустимые исключения) получать ниже ошибки.
[ERROR ] MARSHAL "Valuetype does not implement StreamableValue or CustomMarshal", at pos=0x214
[err] org.omg.CORBA.MARSHAL: Valuetype does not implement StreamableValue or CustomMarshal: vmcid: 0x0 minor code: 0x0 completed: No
[err] at org.apache.yoko.orb.OB.ValueReader.unmarshalValueState(ValueReader.java:716)
[err] at org.apache.yoko.orb.OB.ValueReader.access$300(ValueReader.java:54)
[err] at org.apache.yoko.orb.OB.ValueReader$ClassCreationStrategy.create(ValueReader.java:196)
[err] at [internal classes]
[err] at java.lang.Throwable.readObject(Throwable.java:388)
[err] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[err] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
[err] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
[err] at java.lang.reflect.Method.invoke(Method.java:508)
[err] at org.apache.yoko.rmi.impl.ValueDescriptor.readSerializable(ValueDescriptor.java:735)
[err] at [internal classes]
[err] at org.apache.yoko.orb.OB.ValueReader.access$200(ValueReader.java:54)
[err] at org.apache.yoko.orb.OB.ValueReader$ClassCreationStrategy.create(ValueReader.java:189)
[err] at [internal classes]
[err] at com.dwl.base.requestHandler.beans._DWLServiceController_Stub.processRequest(_DWLServiceController_Stub.java:1001)
Мы используем ниже спецификации технологии
- Spring Загрузочный 1.2.4/1.4.2
- Liberty Профиль 16.0.0.3
- IBM JDK 8/Sun JDK 8
Я добавил некоторое базовое форматирование к вашему вопросу, чтобы было легче читать. Ознакомьтесь с [Правилами форматирования] Stack Overflow (https://stackoverflow.com/help/formatting), чтобы вы могли сделать это самостоятельно в следующий раз. – Chris