/** * 根据matcher.Id,返回上下文中对应的值 * * @param ctx * @param matcher * @return */ public static Object checkFieldMatcher(InvocationContext ctx, Matcher matcher) { Id id = matcher.getId(); if ("operatorId".equals(id.getName())) { return ctx.getHeader().getOperatorId().orElse(null); } else if ("callerFrom".equals(id.getName())) { return ctx.getHeader().getCallerFrom().orElse(null); } else if ("ip".equals(id.getName())) { return ctx.getHeader().getCallerIp().orElse(null); } else if ("customerId".equals(id.getName())) { return ctx.getHeader().getCustomerId().orElse(null); } else if ("service".equals(id.getName())) { return ctx.getHeader().getServiceName(); } else if ("method".equals(id.getName())) { return ctx.getHeader().getMethodName(); } else if ("version".equals(id.getName())) { return ctx.getHeader().getVersionName(); } else { throw new AssertionError("not support Field: " + id.getName()); } }
/** * 根据matcher.Id,返回上下文中对应的值 * * @param ctx * @param matcher * @return */ public static Object checkFieldMatcher(InvocationContext ctx, Matcher matcher) { Id id = matcher.getId(); if ("operatorId".equals(id.getName())) { return ctx.getHeader().getOperatorId().orElse(null); } else if ("callerFrom".equals(id.getName())) { return ctx.getHeader().getCallerFrom().orElse(null); } else if ("ip".equals(id.getName())) { return ctx.getHeader().getCallerIp().orElse(null); } else if ("customerId".equals(id.getName())) { return ctx.getHeader().getCustomerId().orElse(null); } else if ("service".equals(id.getName())) { return ctx.getHeader().getServiceName(); } else if ("method".equals(id.getName())) { return ctx.getHeader().getMethodName(); } else if ("version".equals(id.getName())) { return ctx.getHeader().getVersionName(); } else { throw new AssertionError("not support Field: " + id.getName()); } }
invocationContext.getHeader().setTransactionId(Optional.of(transactionContext.getCurrentTransactionId())); invocationContext.getHeader().setTransactionSequence(Optional.of(transactionContext.getCurrentTransactionSequence())); transactionProcess.setExpectedStatus(TGlobalTransactionProcessExpectedStatus.Success); transactionProcess.setServiceName(invocationContext.getHeader().getServiceName()); transactionProcess.setMethodName(invocationContext.getHeader().getMethodName()); transactionProcess.setVersionName(invocationContext.getHeader().getVersionName()); transactionProcess.setRollbackMethodName(invocationContext.getHeader().getMethodName() + "_rollback");
invocationContext.getHeader().setTransactionId(Optional.of(transactionContext.getCurrentTransactionId())); invocationContext.getHeader().setTransactionSequence(Optional.of(transactionContext.getCurrentTransactionSequence())); transactionProcess.setExpectedStatus(TGlobalTransactionProcessExpectedStatus.Success); transactionProcess.setServiceName(invocationContext.getHeader().getServiceName()); transactionProcess.setMethodName(invocationContext.getHeader().getMethodName()); transactionProcess.setVersionName(invocationContext.getHeader().getVersionName()); transactionProcess.setRollbackMethodName(invocationContext.getHeader().getMethodName() + "_rollback");
public <REQ, RESP> RESP send(REQ request, TCommonBeanSerializer<REQ> requestSerializer, TCommonBeanSerializer<RESP> responseSerializer) throws TException { final InvocationContext context = InvocationContext.Factory.getCurrentInstance(); SoaHeader header = context.getHeader(); RESP response=null; header = InvocationContext.Factory.getCurrentInstance().getHeader(); if (msg.type == TMessageType.EXCEPTION) { TApplicationException x = TApplicationException.read(protocol);
@Override public <REQ, RESP> RESP send(REQ request, TCommonBeanSerializer<REQ> requestSerializer, TCommonBeanSerializer<RESP> responseSerializer) throws TException { InvocationContext context = InvocationContext.Factory.getCurrentInstance(); SoaHeader soaHeader = context.getHeader(); soaHeader = InvocationContext.Factory.getCurrentInstance().getHeader();
public <REQ, RESP> RESP send(REQ request, RESP response, TBeanSerializer<REQ> requestSerializer, TBeanSerializer<RESP> responseSerializer) throws TException { InvocationContext context = InvocationContext.Factory.getCurrentInstance(); SoaHeader soaHeader = context.getHeader(); soaHeader=InvocationContext.Factory.getCurrentInstance().getHeader(); if (TMessageType.EXCEPTION == msg.type) { TApplicationException x = TApplicationException.read(inputProtocol);
@SuppressWarnings("unchecked") protected <REQ, RESP> RESP sendBase(REQ request, RESP response, TBeanSerializer<REQ> requestSerializer, TBeanSerializer<RESP> responseSerializer) throws TException { InvocationContext context = InvocationContext.Factory.getCurrentInstance(); SoaHeader soaHeader = context.getHeader();
context.setCalleeIp(infos[0]); context.setCalleePort(Integer.valueOf(infos[1])); context.getHeader().setVersionName(infos[2]); } else if (isLocal) { context.setCalleeIp(SoaSystemEnvProperties.SOA_SERVICE_IP);
@SuppressWarnings("unchecked") protected <REQ, RESP> RESP sendBase(REQ request, TCommonBeanSerializer<REQ> requestSerializer, TCommonBeanSerializer<RESP> responseSerializer) throws TException { InvocationContext context = InvocationContext.Factory.getCurrentInstance(); SoaHeader soaHeader = context.getHeader();
@SuppressWarnings("unchecked") protected <REQ, RESP> RESP sendBase(REQ request, RESP response, TBeanSerializer<REQ> requestSerializer, TBeanSerializer<RESP> responseSerializer) throws TException { InvocationContext context = InvocationContext.Factory.getCurrentInstance(); SoaHeader soaHeader = context.getHeader();
context.setCalleeIp(infos[0]); context.setCalleePort(Integer.valueOf(infos[1])); context.getHeader().setVersionName(infos[2]); } else if (isLocal) { context.setCalleeIp(SoaSystemEnvProperties.SOA_SERVICE_IP);
/** * 发送异步请求 * * @param request 请求实体 * @param response 返回实体 * @param requestSerializer * @param responseSerializer * @param timeout 超时时间 * @param <REQ> * @param <RESP> * @return * @throws TException */ protected <REQ, RESP> Future<RESP> sendBaseAsync(REQ request, RESP response, TBeanSerializer<REQ> requestSerializer, TBeanSerializer<RESP> responseSerializer, long timeout) throws TException { InvocationContext context = InvocationContext.Factory.getCurrentInstance(); SoaHeader soaHeader = context.getHeader(); soaHeader.setAsyncCall(true); final StubFilterChain stubFilterChain = new StubFilterChain(); stubFilterChain.setLastFilter(new SendMessageFilter()); stubFilterChain.setAttribute(StubFilterChain.ATTR_KEY_CONTEXT, context); stubFilterChain.setAttribute(StubFilterChain.ATTR_KEY_HEADER, soaHeader); stubFilterChain.setAttribute(StubFilterChain.ATTR_KEY_REQUEST, request); stubFilterChain.setAttribute(SendMessageFilter.ATTR_KEY_SENDMESSAGE, (SendMessageFilter.SendMessageAction) (chain) -> { SoaConnection conn = connectionPool.getConnection(); Future<RESP> resp = conn.sendAsync(request, response, requestSerializer, responseSerializer, timeout); chain.setAttribute(StubFilterChain.ATTR_KEY_RESPONSE, resp); }); stubFilterChain.doFilter(); return (Future<RESP>) stubFilterChain.getAttribute(StubFilterChain.ATTR_KEY_RESPONSE); }
/** * 发送异步请求 * * @param request 请求实体 * @param response 返回实体 * @param requestSerializer * @param responseSerializer * @param timeout 超时时间 * @param <REQ> * @param <RESP> * @return * @throws TException */ protected <REQ, RESP> Future<RESP> sendBaseAsync(REQ request, RESP response, TBeanSerializer<REQ> requestSerializer, TBeanSerializer<RESP> responseSerializer, long timeout) throws TException { InvocationContext context = InvocationContext.Factory.getCurrentInstance(); SoaHeader soaHeader = context.getHeader(); soaHeader.setAsyncCall(true); final StubFilterChain stubFilterChain = new StubFilterChain(); stubFilterChain.setLastFilter(new SendMessageFilter()); stubFilterChain.setAttribute(StubFilterChain.ATTR_KEY_CONTEXT, context); stubFilterChain.setAttribute(StubFilterChain.ATTR_KEY_HEADER, soaHeader); stubFilterChain.setAttribute(StubFilterChain.ATTR_KEY_REQUEST, request); stubFilterChain.setAttribute(SendMessageFilter.ATTR_KEY_SENDMESSAGE, (SendMessageFilter.SendMessageAction) (chain) -> { SoaConnection conn = connectionPool.getConnection(); Future<RESP> resp = conn.sendAsync(request, response, requestSerializer, responseSerializer, timeout); chain.setAttribute(StubFilterChain.ATTR_KEY_RESPONSE, resp); }); stubFilterChain.doFilter(); return (Future<RESP>) stubFilterChain.getAttribute(StubFilterChain.ATTR_KEY_RESPONSE); }
/** * 发送异步请求 * * @param request 请求实体 * @param requestSerializer * @param responseSerializer * @param timeout 超时时间 * @param <REQ> * @param <RESP> * @return * @throws TException */ protected <REQ, RESP> Future<RESP> sendBaseAsync(REQ request, TCommonBeanSerializer<REQ> requestSerializer, TCommonBeanSerializer<RESP> responseSerializer, long timeout) throws TException { InvocationContext context = InvocationContext.Factory.getCurrentInstance(); SoaHeader soaHeader = context.getHeader(); soaHeader.setAsyncCall(true); final StubFilterChain stubFilterChain = new StubFilterChain(); stubFilterChain.setLastFilter(new SendMessageFilter()); stubFilterChain.setAttribute(StubFilterChain.ATTR_KEY_CONTEXT, context); stubFilterChain.setAttribute(StubFilterChain.ATTR_KEY_HEADER, soaHeader); stubFilterChain.setAttribute(StubFilterChain.ATTR_KEY_REQUEST, request); stubFilterChain.setAttribute(SendMessageFilter.ATTR_KEY_SENDMESSAGE, (SendMessageFilter.SendMessageAction) (chain) -> { SoaCommonConnection conn = connectionPool.getCommonConnection(); Future<RESP> resp = conn.sendAsync(request, requestSerializer, responseSerializer, timeout); chain.setAttribute(StubFilterChain.ATTR_KEY_RESPONSE, resp); }); stubFilterChain.doFilter(); return (Future<RESP>) stubFilterChain.getAttribute(StubFilterChain.ATTR_KEY_RESPONSE); }