Java Code Examples for org.omg.CORBA.Request#invoke()

The following examples show how to use org.omg.CORBA.Request#invoke() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: CorbaConduit.java    From cxf with Apache License 2.0 4 votes vote down vote up
public void buildRequest(CorbaMessage message, OperationType opType) throws Exception {
    ServiceInfo service = message.getExchange().getEndpoint().getEndpointInfo().getService();
    NVList nvlist = getArguments(message);
    NamedValue ret = getReturn(message);
    Map<TypeCode, RaisesType> exceptions = getOperationExceptions(opType, typeMap);
    ExceptionList exList = getExceptionList(exceptions, message, opType);
    Request request = getRequest(message, opType.getName(), nvlist, ret, exList);
    if (request == null) {
        throw new CorbaBindingException("Couldn't build the corba request");
    }
    Exception ex = null;
    try {
        request.invoke();
        ex = request.env().exception();
    } catch (SystemException sysex) {
        ex = sysex;
    }
    if (ex != null) {
        if (ex instanceof SystemException) {
            message.setContent(Exception.class, new Fault(ex));
            message.setSystemException((SystemException) ex);
            return;
        }
        if (ex instanceof UnknownUserException) {
            UnknownUserException userEx = (UnknownUserException) ex;
            Any except = userEx.except;
            RaisesType raises = exceptions.get(except.type());
            if (raises == null) {
                throw new CorbaBindingException("Couldn't find the exception type code to unmarshall");
            }
            QName elName = new QName("", raises.getException().getLocalPart());
            CorbaObjectHandler handler =
                CorbaHandlerUtils.initializeObjectHandler(orb,
                                                          elName,
                                                          raises.getException(),
                                                          typeMap,
                                                          service);

            CorbaStreamable exStreamable = message.createStreamableObject(handler, elName);
            exStreamable._read(except.create_input_stream());
            message.setStreamableException(exStreamable);
            message.setContent(Exception.class, new Fault(userEx));
        } else {
            message.setContent(Exception.class, new Fault(ex));
        }
    }
}
 
Example 2
Source File: CorbaConduitTest.java    From cxf with Apache License 2.0 4 votes vote down vote up
@Test
public void testInvoke() throws Exception {
    CorbaConduit conduit = setupCorbaConduit(false);
    //CorbaMessage message = new CorbaMessage(msg);
    CorbaMessage message = control.createMock(CorbaMessage.class);
    /*String opName = "GreetMe";
    NVList nvlist = (NVList)orb.create_list(0);

    Request request = conduit.getRequest(message, "GreetMe", nvlist, null, null);
    request.invoke();
    */

    org.omg.CORBA.Object obj = control.createMock(org.omg.CORBA.Object.class);
    EasyMock.expect(message.get(CorbaConstants.CORBA_ENDPOINT_OBJECT)).andReturn(obj);

    //msg.put(CorbaConstants.CORBA_ENDPOINT_OBJECT, obj);
    Request r = control.createMock(Request.class);
    NVList nvList = orb.create_list(0);
    NamedValue ret = control.createMock(NamedValue.class);
    ExceptionList exList = control.createMock(ExceptionList.class);

    EasyMock.expect(obj._create_request((Context)EasyMock.anyObject(),
                        EasyMock.eq("greetMe"),
                        EasyMock.isA(NVList.class),
                        EasyMock.isA(NamedValue.class),
                        EasyMock.isA(ExceptionList.class),
                        EasyMock.isA(ContextList.class)));
    EasyMock.expectLastCall().andReturn(r);
    r.invoke();
    EasyMock.expectLastCall();

    control.replay();
    Request request = conduit.getRequest(message, "greetMe", nvList, ret, exList);
    request.invoke();
    control.verify();

      /* try {
            ContextList ctxList = orb.create_context_list();
            Context ctx = orb.get_default_context();
            org.omg.CORBA.Object targetObj = (org.omg.CORBA.Object)message
                .get(CorbaConstants.CORBA_ENDPOINT_OBJECT);
            Request request = targetObj._create_request(ctx, opName, list, ret, exList, ctxList);
            request.invoke();

        } catch (java.lang.Exception ex) {
            ex.printStackTrace();
        }*/
}