org.fabric3.spi.container.invocation.Message.getBody()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(11.8k)|赞(0)|评价(0)|浏览(201)

本文整理了Java中org.fabric3.spi.container.invocation.Message.getBody()方法的一些代码示例,展示了Message.getBody()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Message.getBody()方法的具体详情如下:
包路径:org.fabric3.spi.container.invocation.Message
类名称:Message
方法名:getBody

Message.getBody介绍

[英]Returns the body of the message, which will be the payload or parameters associated with the wire.
[中]返回消息的正文,它将是与导线相关联的有效载荷或参数。

代码示例

代码示例来源:origin: com.carecon.fabric3/fabric3-binding-rs-jersey

private Object handleFault(Message ret) throws InvocationTargetException {
  if (ret.getBody() instanceof ServiceRuntimeException) {
    ServiceRuntimeException e = (ServiceRuntimeException) ret.getBody();
    if (e.getCause() instanceof NotAuthorizedException) {
      // authorization exceptions need to be mapped to a client 403 response
      throw new InvocationTargetException(new WebApplicationException(Response.Status.FORBIDDEN));
    }
    throw new InvocationTargetException(e);
  }
  throw new InvocationTargetException((Throwable) ret.getBody());
}

代码示例来源:origin: org.fabric3/fabric3-binding-rs-jersey

private Object handleFault(Message ret) throws InvocationTargetException {
  if (ret.getBody() instanceof ServiceRuntimeException) {
    ServiceRuntimeException e = (ServiceRuntimeException) ret.getBody();
    if (e.getCause() instanceof NotAuthorizedException) {
      // authorization exceptions need to be mapped to a client 403 response
      throw new InvocationTargetException(new WebApplicationException(Response.Status.FORBIDDEN));
    }
    throw new InvocationTargetException(e);
  }
  throw new InvocationTargetException((Throwable) ret.getBody());
}

代码示例来源:origin: org.fabric3/fabric3-binding-rs-jersey

public Message invoke(Message message) {
  Object[] args = (Object[]) message.getBody();
  ClassLoader old = Thread.currentThread().getContextClassLoader();
  try {
    Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
    Object body = response.build(args);
    message.reset();
    message.setBody(body);
  } catch (RuntimeException e) {
    throw new ServiceRuntimeException(e);
  } finally {
    Thread.currentThread().setContextClassLoader(old);
  }
  return message;
}

代码示例来源:origin: com.carecon.fabric3/fabric3-binding-rs-jersey

public Message invoke(Message message) {
  Object[] args = (Object[]) message.getBody();
  ClassLoader old = Thread.currentThread().getContextClassLoader();
  try {
    Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
    Object body = response.build(args);
    message.reset();
    message.setBody(body);
  } catch (RuntimeException e) {
    throw new ServiceRuntimeException(e);
  } finally {
    Thread.currentThread().setContextClassLoader(old);
  }
  return message;
}

代码示例来源:origin: com.carecon.fabric3/fabric3-binding-zeromq

public Message invoke(Message msg) {
  byte[] body = (byte[]) msg.getBody();
  WorkContext workContext = msg.getWorkContext();
  sender.send(body, index, workContext);
  return ONE_WAY_RESPONSE;
}

代码示例来源:origin: org.fabric3/fabric3-pojo

public Object newInstance() throws Fabric3Exception {
  ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
  Thread.currentThread().setContextClassLoader(cl);
  try {
    // FABRIC-40: if a component invokes services from a setter, the message content will be over-written. Save so it can be restored after instance
    // injection.
    Message message = MessageCache.getMessage();
    Object content = message.getBody();
    Object instance = constructor.get();
    if (injectors != null) {
      for (Injector<Object> injector : injectors) {
        injector.inject(instance);
      }
    }
    // restore the original contents
    message.setBody(content);
    return instance;
  } finally {
    Thread.currentThread().setContextClassLoader(oldCl);
  }
}

代码示例来源:origin: com.carecon.fabric3/fabric3-binding-zeromq

public Message invoke(Message msg) {
  msg.setBody(new Object[]{msg.getBody()});
  return next.invoke(msg);
}

代码示例来源:origin: com.carecon.fabric3/fabric3-pojo

public Object newInstance() throws Fabric3Exception {
  ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
  Thread.currentThread().setContextClassLoader(cl);
  try {
    // FABRIC-40: if a component invokes services from a setter, the message content will be over-written. Save so it can be restored after instance
    // injection.
    Message message = MessageCache.getMessage();
    Object content = message.getBody();
    Object instance = constructor.get();
    if (injectors != null) {
      for (Injector<Object> injector : injectors) {
        injector.inject(instance);
      }
    }
    // restore the original contents
    message.setBody(content);
    return instance;
  } finally {
    Thread.currentThread().setContextClassLoader(oldCl);
  }
}

代码示例来源:origin: com.carecon.fabric3/fabric3-binding-zeromq

public Message invoke(Message msg) {
  Object body = msg.getBody();
  if (body == null || !body.getClass().isArray()) {
    return next.invoke(msg);
  }
  Object[] payload = (Object[]) body;
  if (payload.length != 1) {
    throw new ServiceRuntimeException("Unexpected payload size: " + payload.length);
  }
  msg.setBody(payload[0]);
  return next.invoke(msg);
}

代码示例来源:origin: com.carecon.fabric3/fabric3-async

public Message invoke(final Message msg) {
  WorkContext workContext = msg.getWorkContext();
  List<String> newStack = null;
  List<String> stack = workContext.getCallbackReferences();
  if (stack != null && !stack.isEmpty()) {
    // clone the callstack to avoid multiple threads seeing changes
    newStack = new ArrayList<>(stack);
  }
  Map<String, Object> newHeaders = null;
  Map<String, Object> headers = workContext.getHeaders();
  if (headers != null && !headers.isEmpty()) {
    // clone the headers to avoid multiple threads seeing changes
    newHeaders = new HashMap<>(headers);
  }
  SecuritySubject subject = workContext.getSubject();
  Object payload = msg.getBody();
  AsyncRequest request = new AsyncRequest(next, payload, subject, newStack, newHeaders, monitor);
  executorService.execute(request);
  return RESPONSE;
}

代码示例来源:origin: com.carecon.fabric3/fabric3-binding-zeromq

public Message invoke(Message msg) {
  byte[] body = (byte[]) msg.getBody();
  WorkContext workContext = msg.getWorkContext();
  byte[] value = sender.sendAndReply(body, index, workContext);
  msg.setBody(value);
  return msg;
}

代码示例来源:origin: org.fabric3/fabric3-binding-ws-metro

public Object invoke(Packet packet, Method method, Object... args) throws InvocationTargetException {
  // the work context is populated by the current tubeline
  WorkContext workContext = (WorkContext) packet.invocationProperties.get(MetroConstants.WORK_CONTEXT);
  if (workContext == null) {
    // programming error
    throw new AssertionError("Work context not set");
  }
  Message input = MessageCache.getAndResetMessage();
  try {
    input.setWorkContext(workContext);
    input.setBody(args);
    Interceptor head = chains.get(method.getName()).getHeadInterceptor();
    Message ret = head.invoke(input);
    if (!ret.isFault()) {
      return ret.getBody();
    } else {
      Throwable th = (Throwable) ret.getBody();
      throw new InvocationTargetException(th);
    }
  } finally {
    input.reset();
  }
}

代码示例来源:origin: com.carecon.fabric3/fabric3-binding-ws

public Object invoke(Packet packet, Method method, Object... args) throws InvocationTargetException {
  // the work context is populated by the current tubeline
  WorkContext workContext = (WorkContext) packet.invocationProperties.get(MetroConstants.WORK_CONTEXT);
  if (workContext == null) {
    // programming error
    throw new AssertionError("Work context not set");
  }
  Message input = MessageCache.getAndResetMessage();
  try {
    input.setWorkContext(workContext);
    input.setBody(args);
    Interceptor head = chains.get(method.getName()).getHeadInterceptor();
    Message ret = head.invoke(input);
    if (!ret.isFault()) {
      return ret.getBody();
    } else {
      Throwable th = (Throwable) ret.getBody();
      throw new InvocationTargetException(th);
    }
  } finally {
    input.reset();
  }
}

代码示例来源:origin: org.fabric3/fabric3-fabric

private void transformInput(Message msg) {
  Object params = msg.getBody();
  // TODO handle null types
  if (params != null) {
    try {
      // Operations take 0..n parameters. A single parameter must be unwrapped from the invocation array and passed to a transformer.
      // In contrast, multiple parameter operations are passed as an array to the transformer.
      if (params.getClass().isArray() && ((Object[]) params).length == 1) {
        Object[] paramArray = (Object[]) params;
        paramArray[0] = inTransformer.transform(paramArray[0], inLoader);
      } else {
        // multiple parameters - pass the entire array to transform
        Object transformed = inTransformer.transform(params, inLoader);
        msg.setBody(transformed);
      }
    } catch (Fabric3Exception e) {
      throw new ServiceRuntimeException(e);
    }
  }
}

代码示例来源:origin: com.carecon.fabric3/fabric3-fabric

private void transformInput(Message msg) {
  Object params = msg.getBody();
  // TODO handle null types
  if (params != null) {
    try {
      // Operations take 0..n parameters. A single parameter must be unwrapped from the invocation array and passed to a transformer.
      // In contrast, multiple parameter operations are passed as an array to the transformer.
      if (params.getClass().isArray() && ((Object[]) params).length == 1) {
        Object[] paramArray = (Object[]) params;
        paramArray[0] = inTransformer.transform(paramArray[0], inLoader);
      } else {
        // multiple parameters - pass the entire array to transform
        Object transformed = inTransformer.transform(params, inLoader);
        msg.setBody(transformed);
      }
    } catch (Fabric3Exception e) {
      throw new ServiceRuntimeException(e);
    }
  }
}

代码示例来源:origin: com.carecon.fabric3/fabric3-binding-file

public Message invoke(Message msg) {
  Object body = msg.getBody();
  if (body == null || !body.getClass().isArray()) {
    throw new ServiceRuntimeException("Invalid parameter type: " + body);
  }
  int length = Array.getLength(body);
  if (length != 1) {
    throw new ServiceRuntimeException("Invalid number of parameters: " + length);
  }
  Object element = Array.get(body, 0);
  if (!(element instanceof String)) {
    throw new ServiceRuntimeException("Parameter must be a string: " + element);
  }
  File file = new File(outputDirectory, (String) element);
  try {
    OutputStream stream = adapter.createOutputStream(file);
    msg.setBody(stream);
    return msg;
  } catch (IOException e) {
    throw new ServiceRuntimeException(e);
  }
}

代码示例来源:origin: com.carecon.fabric3/fabric3-system

public Message invoke(Message msg) {
    Object body = msg.getBody();
    Object instance;
    try {
      instance = component.getInstance();
    } catch (Fabric3Exception e) {
      throw new InvocationRuntimeException(e);
    }

    try {
      msg.setBody(operation.invoke(instance, (Object[]) body));
    } catch (InvocationTargetException e) {
      msg.setBodyWithFault(e.getCause());
    } catch (IllegalAccessException e) {
      throw new InvocationRuntimeException(e);
    } finally {
      try {
        component.releaseInstance(instance);
      } catch (Fabric3Exception e) {
        throw new InvocationRuntimeException(e);
      }
    }
    return msg;
  }
}

代码示例来源:origin: com.carecon.fabric3/fabric3-fabric

private Message transformOutput(Message ret) {
  // FIXME For exception transformation, if it is checked convert as application fault
  Object body = ret.getBody();
  // TODO handle null types
  if (body != null) {
    try {
      Object transformed = outTransformer.transform(body, outLoader);
      if (ret.isFault()) {
        ret.setBodyWithFault(transformed);
      } else {
        ret.setBody(transformed);
      }
    } catch (ClassCastException e) {
      // an unexpected type was returned by the target service or an interceptor later in the chain. This is an error in the extension or
      // interceptor and not user code since errors should be trapped and returned in the format expected by the transformer
      if (body instanceof Throwable) {
        throw new ServiceRuntimeException("Unexpected exception returned", (Throwable) body);
      } else {
        throw new ServiceRuntimeException("Unexpected type returned: " + body.getClass());
      }
    } catch (Fabric3Exception e) {
      throw new ServiceRuntimeException(e);
    }
  }
  return ret;
}

代码示例来源:origin: com.carecon.fabric3/fabric3-async

public void run() {
  WorkContext workContext = WorkContextCache.getAndResetThreadWorkContext();
  workContext.addCallbackReferences(stack);
  workContext.addHeaders(headers);
  workContext.setSubject(subject);
  Message message = MessageCache.getAndResetMessage();
  message.setBody(payload);
  message.setWorkContext(workContext);
  Message response = next.invoke(message);
  if (response.isFault()) {
    // log the exception
    monitor.onError((Throwable) response.getBody());
  }
  message.reset();
  workContext.reset();
}

代码示例来源:origin: org.fabric3/fabric3-binding-ftp

public boolean onUpload(String fileName, String contentType, InputStream uploadData) throws Exception {
  Object[] args = new Object[]{fileName, uploadData};
  WorkContext workContext = WorkContextCache.getAndResetThreadWorkContext();
  Message input = MessageCache.getAndResetMessage();
  try {
    // set the header value for the request context
    workContext.setHeader(FtpConstants.HEADER_CONTENT_TYPE, contentType);
    input.setWorkContext(workContext);
    input.setBody(args);
    Message response = getInterceptor().invoke(input);
    if (response.isFault()) {
      monitor.fileProcessingError(servicePath, (Throwable) response.getBody());
      input.reset();
      return false;
    }
    return true;
  } finally {
    input.reset();
    workContext.reset();
  }
}

相关文章