本文整理汇总了Java中org.apache.thrift.protocol.TMessageType类的典型用法代码示例。如果您正苦于以下问题:Java TMessageType类的具体用法?Java TMessageType怎么用?Java TMessageType使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
TMessageType类属于org.apache.thrift.protocol包,在下文中一共展示了TMessageType类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: process
import org.apache.thrift.protocol.TMessageType; //导入依赖的package包/类
@Override
public boolean process(TProtocol in, TProtocol out) throws TException {
TMessage msg = in.readMessageBegin();
Controller<?, ?> fn = (Controller<?, ?>) this.beanFactory
.getBean(msg.name);
if (fn == null) {
if (LOGGER.isWarnEnabled()) {
LOGGER.warn("Invalid request: failed to find interface="
+ msg.name + ", from: " + getInetAddress(in));
}
TProtocolUtil.skip(in, TType.STRUCT);
in.readMessageEnd();
TApplicationException x = new TApplicationException(
TApplicationException.UNKNOWN_METHOD,
"Invalid method name: '" + msg.name + "'");
out.writeMessageBegin(new TMessage(msg.name,
TMessageType.EXCEPTION, msg.seqid));
x.write(out);
out.writeMessageEnd();
out.getTransport().flush();
return true;
}
process(msg.seqid, msg.name, in, out, fn);
return true;
}
示例2: encodeRequest
import org.apache.thrift.protocol.TMessageType; //导入依赖的package包/类
protected void encodeRequest(Channel channel, ChannelBuffer buffer, Request request)
throws IOException {
Invocation invocation = (Invocation) request.getData();
TProtocol protocol = newProtocol(channel.getUrl(), buffer);
try {
protocol.writeMessageBegin(new TMessage(
invocation.getMethodName(), TMessageType.CALL,
thriftSeq.getAndIncrement()));
protocol.writeStructBegin(new TStruct(invocation.getMethodName() + "_args"));
for(int i = 0; i < invocation.getParameterTypes().length; i++) {
Class<?> type = invocation.getParameterTypes()[i];
}
} catch (TException e) {
throw new IOException(e.getMessage(), e);
}
}
示例3: writeResult
import org.apache.thrift.protocol.TMessageType; //导入依赖的package包/类
@SuppressWarnings("rawtypes")
private void writeResult(final TProtocol out, final TMessage msg, final WriterHandler onComplete, TBase args,
final TBase result) {
try {
onComplete.beforeWrite(msg, args, result);
// if (!isOneway()) {
out.writeMessageBegin(new TMessage(msg.name, TMessageType.REPLY, msg.seqid));
if (result != null) {
result.write(out);
} else {
out.writeStructBegin(null);
out.writeFieldStop();
out.writeStructEnd();
}
out.writeMessageEnd();
out.getTransport().flush();
// }
onComplete.afterWrite(msg, null, TMessageType.REPLY, args, result);
} catch (Throwable e) {
onComplete.afterWrite(msg, e, TMessageType.EXCEPTION, args, result);
}
}
示例4: process
import org.apache.thrift.protocol.TMessageType; //导入依赖的package包/类
@Override
public final boolean process(final TProtocol in, final TProtocol out)
throws TException {
final TMessage msg = in.readMessageBegin();
final ProcessFunction<LocatorServiceImpl, ?> fn = this.fnMap
.get(msg.name);
if (fn != null) {
fn.process(msg.seqid, in, out, this.inst);
// terminate connection on receiving closeConnection
// direct class comparison should be the fastest way
return fn.getClass() != LocatorService.Processor.closeConnection.class;
}
else {
TProtocolUtil.skip(in, TType.STRUCT);
in.readMessageEnd();
TApplicationException x = new TApplicationException(
TApplicationException.UNKNOWN_METHOD, "Invalid method name: '"
+ msg.name + "'");
out.writeMessageBegin(new TMessage(msg.name, TMessageType.EXCEPTION,
msg.seqid));
x.write(out);
out.writeMessageEnd();
out.getTransport().flush();
return true;
}
}
示例5: process
import org.apache.thrift.protocol.TMessageType; //导入依赖的package包/类
@Override
public boolean process(TProtocol in, TProtocol out) throws TException {
TMessage msg = in.readMessageBegin();
ProcessFunction fn = processMap.get(msg.name);
if (fn == null) {
TProtocolUtil.skip(in, TType.STRUCT);
in.readMessageEnd();
TApplicationException x = new TApplicationException(TApplicationException.UNKNOWN_METHOD, "Invalid method name: '"+msg.name+"'");
out.writeMessageBegin(new TMessage(msg.name, TMessageType.EXCEPTION, msg.seqid));
x.write(out);
out.writeMessageEnd();
out.getTransport().flush();
return true;
}
fn.process(msg.seqid, in, out, iface);
return true;
}
示例6: getMessageTypeAndSeq
import org.apache.thrift.protocol.TMessageType; //导入依赖的package包/类
private byte[] getMessageTypeAndSeq(JSONObject request,
JSONObject methodInfo) throws TProtocolException {
if (request.has(ARGUMENTS_KEY)) {
if (methodInfo != null && methodInfo.has((ONEWAY_KEY))) {
return new byte[] { TMessageType.ONEWAY, 0 };
} else {
return new byte[] { TMessageType.CALL, 0 };
}
} else if (request.has(RESULT_KEY)) {
return new byte[] { TMessageType.REPLY, 1 };
} else if (request.has(EXCEPTION_KEY)) {
return new byte[] { TMessageType.EXCEPTION, 1 };
} else {
throw new TProtocolException(TProtocolException.INVALID_DATA,
new Exception("Unable to parse message type"));
}
}
示例7: writeMessageBegin
import org.apache.thrift.protocol.TMessageType; //导入依赖的package包/类
@Override
public void writeMessageBegin(TMessage tMessage) throws TException {
oprot.writeStructBegin(null);
oprot.writeString(METHOD_KEY);
oprot.writeString(tMessage.name);
switch (tMessage.type) {
case TMessageType.CALL:
oprot.writeString(ARGUMENTS_KEY);
break;
case TMessageType.REPLY:
oprot.writeString(RESULT_KEY);
break;
case TMessageType.EXCEPTION:
oprot.writeString(EXCEPTION_KEY);
break;
}
}
示例8: readApplicationException
import org.apache.thrift.protocol.TMessageType; //导入依赖的package包/类
private static TApplicationException readApplicationException(int seqId, ThriftFunction func,
TProtocol inputProtocol,
TMessage msg) throws TException {
if (msg.seqid != seqId) {
throw new TApplicationException(TApplicationException.BAD_SEQUENCE_ID);
}
if (!func.name().equals(msg.name)) {
return new TApplicationException(TApplicationException.WRONG_METHOD_NAME, msg.name);
}
if (msg.type == TMessageType.EXCEPTION) {
final TApplicationException appEx = TApplicationExceptions.read(inputProtocol);
inputProtocol.readMessageEnd();
return appEx;
}
return null;
}
示例9: writeValue
import org.apache.thrift.protocol.TMessageType; //导入依赖的package包/类
@Override
void writeValue(JsonGenerator jw, Byte val) throws IOException {
String serialized;
switch (val.byteValue()) {
case TMessageType.CALL:
serialized = "CALL";
break;
case TMessageType.REPLY:
serialized = "REPLY";
break;
case TMessageType.EXCEPTION:
serialized = "EXCEPTION";
break;
case TMessageType.ONEWAY:
serialized = "ONEWAY";
break;
default:
throw new IllegalArgumentException("Unsupported message type: " + val);
}
jw.writeString(serialized);
}
示例10: testStructuredLogging
import org.apache.thrift.protocol.TMessageType; //导入依赖的package包/类
@Test(timeout = 10000)
public void testStructuredLogging() throws Exception {
HelloService.Iface client = newClient();
client.hello("kawamuray");
ThriftStructuredLog log = writtenLogs.take();
//assertThat(writtenLogs.size()).isEqualTo(1);
assertThat(log.timestampMillis()).isGreaterThan(0);
assertThat(log.responseTimeNanos()).isGreaterThanOrEqualTo(0);
assertThat(log.thriftServiceName()).isEqualTo(HelloService.class.getCanonicalName());
assertThat(log.thriftMethodName()).isEqualTo("hello");
ThriftCall call = log.thriftCall();
assertThat(call.header().name).isEqualTo("hello");
assertThat(call.header().type).isEqualTo(TMessageType.CALL);
assertThat(call.args()).isEqualTo(new hello_args().setName("kawamuray"));
ThriftReply reply = log.thriftReply();
assertThat(reply.header().name).isEqualTo("hello");
assertThat(reply.header().type).isEqualTo(TMessageType.REPLY);
assertThat(reply.header().seqid).isEqualTo(call.header().seqid);
assertThat(reply.result()).isEqualTo(new hello_result().setSuccess("Hello kawamuray"));
}
示例11: encodeRequest
import org.apache.thrift.protocol.TMessageType; //导入依赖的package包/类
protected void encodeRequest(Channel channel, ChannelBuffer buffer, Request request)
throws IOException {
Invocation invocation = (Invocation) request.getData();
TProtocol protocol = newProtocol(channel.getUrl(), buffer);
try {
protocol.writeMessageBegin(new TMessage(
invocation.getMethodName(), TMessageType.CALL,
thriftSeq.getAndIncrement()));
protocol.writeStructBegin(new TStruct(invocation.getMethodName() + "_args"));
for (int i = 0; i < invocation.getParameterTypes().length; i++) {
Class<?> type = invocation.getParameterTypes()[i];
}
} catch (TException e) {
throw new IOException(e.getMessage(), e);
}
}
示例12: process
import org.apache.thrift.protocol.TMessageType; //导入依赖的package包/类
public final void process(int seqid, TProtocol iprot, TProtocol oprot, I iface) throws TException {
T args = getEmptyArgsInstance();
try {
args.read(iprot);
} catch (TProtocolException e) {
iprot.readMessageEnd();
TApplicationException x = new TApplicationException(TApplicationException.PROTOCOL_ERROR, e.getMessage());
oprot.writeMessageBegin(new TMessage(getMethodName(), TMessageType.EXCEPTION, seqid));
x.write(oprot);
oprot.writeMessageEnd();
oprot.getTransport().flush();
return;
}
iprot.readMessageEnd();
TBase result = getResult(iface, args);
oprot.writeMessageBegin(new TMessage(getMethodName(), TMessageType.REPLY, seqid));
result.write(oprot);
oprot.writeMessageEnd();
oprot.getTransport().flush();
}
示例13: process
import org.apache.thrift.protocol.TMessageType; //导入依赖的package包/类
public boolean process(TProtocol in, TProtocol out) throws TException {
TMessage msg = in.readMessageBegin();
ProcessFunction fn = processMap.get(msg.name);
if (fn == null) {
TProtocolUtil.skip(in, TType.STRUCT);
in.readMessageEnd();
TApplicationException x = new TApplicationException(TApplicationException.UNKNOWN_METHOD, "Invalid method name: '"+msg.name+"'");
out.writeMessageBegin(new TMessage(msg.name, TMessageType.EXCEPTION, msg.seqid));
x.write(out);
out.writeMessageEnd();
out.getTransport().flush();
return true;
}
fn.process(msg.seqid, in, out, iface);
return true;
}
示例14: writeException
import org.apache.thrift.protocol.TMessageType; //导入依赖的package包/类
@SuppressWarnings({ "rawtypes" })
private void writeException(final TProtocol out, final TMessage msg, final WriterHandler onComplete,
final TApplicationException x, TBase args) {
Throwable cause = null;
try {
onComplete.beforeWrite(msg, args, null);
out.writeMessageBegin(new TMessage(msg.name, TMessageType.EXCEPTION, msg.seqid));
x.write(out);
out.writeMessageEnd();
out.getTransport().flush();
} catch (Throwable e) {
cause = e;
}
onComplete.afterWrite(msg, cause, TMessageType.EXCEPTION, args, null);
}
示例15: process
import org.apache.thrift.protocol.TMessageType; //导入依赖的package包/类
@Override
public final boolean process(final TProtocol in, final TProtocol out)
throws TException {
final TMessage msg = in.readMessageBegin();
final ProcessFunction<GFXDServiceImpl, ?> fn = this.fnMap.get(msg.name);
if (fn != null) {
fn.process(msg.seqid, in, out, this.inst);
// terminate connection on receiving closeConnection
// direct class comparison should be the fastest way
// TODO: SW: also need to clean up connection artifacts in the case of
// client connection failure (ConnectionListener does get a notification
// but how to tie the socket/connectionNumber to the connectionID?)
return fn.getClass() != GFXDService.Processor.closeConnection.class;
}
else {
TProtocolUtil.skip(in, TType.STRUCT);
in.readMessageEnd();
TApplicationException x = new TApplicationException(
TApplicationException.UNKNOWN_METHOD, "Invalid method name: '"
+ msg.name + "'");
out.writeMessageBegin(new TMessage(msg.name, TMessageType.EXCEPTION,
msg.seqid));
x.write(out);
out.writeMessageEnd();
out.getTransport().flush();
return true;
}
}