弹幕下载

master
10295 7 years ago
parent 9fbb9a6e42
commit d621854a4c
  1. 14
      core/pom.xml
  2. 496
      core/src/main/java/core/thrift/QryResult.java
  3. 18
      core/src/main/java/core/thrift/QueryImp.java
  4. 971
      core/src/main/java/core/thrift/TestQry.java
  5. 53
      core/src/main/java/core/thrift/ThriftClientDemo.java
  6. 3
      core/src/main/java/core/thrift/ThriftServerDemo.java
  7. 2996
      core/src/main/java/core/thrift/comment/QueryComment.java
  8. 23
      core/src/main/resources/TestQry.thrift
  9. 4
      db/src/main/java/db/form/PageResult.java
  10. 38
      web/src/main/java/web/controller/BaseController.java
  11. 68
      web/src/main/java/web/controller/DataController.java
  12. 33
      web/src/main/java/web/controller/TableController.java
  13. 5
      web/src/main/java/web/html/OtherResult.java
  14. 69
      web/src/main/java/web/html/Table.java
  15. 29
      web/src/main/java/web/html/TableResult.java
  16. 62
      web/src/main/java/web/html/data/DataTable.java
  17. 7
      web/src/main/java/web/html/data/OtherDataResult.java
  18. 24
      web/src/main/java/web/model/DataModelForm.java
  19. 21
      web/src/main/webapp/WEB-INF/jsp/data/form.jsp
  20. 56
      web/src/main/webapp/WEB-INF/jsp/data/otherData.jsp
  21. 96
      web/src/main/webapp/WEB-INF/jsp/table.jsp
  22. 2
      web/src/main/webapp/WEB-INF/jsp/test.jsp
  23. 7
      web/src/test/java/SpringTest.java

@ -38,6 +38,20 @@
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.thrift</groupId>

@ -1,496 +0,0 @@
/**
* Autogenerated by Thrift Compiler (0.11.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
*/
package core.thrift;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.11.0)", date = "2018-04-28")
public class QryResult implements org.apache.thrift.TBase<QryResult, QryResult._Fields>, java.io.Serializable, Cloneable, Comparable<QryResult> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("QryResult");
private static final org.apache.thrift.protocol.TField CODE_FIELD_DESC = new org.apache.thrift.protocol.TField("code", org.apache.thrift.protocol.TType.I32, (short)1);
private static final org.apache.thrift.protocol.TField MSG_FIELD_DESC = new org.apache.thrift.protocol.TField("msg", org.apache.thrift.protocol.TType.STRING, (short)2);
private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new QryResultStandardSchemeFactory();
private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new QryResultTupleSchemeFactory();
/**
* 返回码, 1成功0失败
*/
public int code; // required
/**
* 响应信息
*/
public java.lang.String msg; // required
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
/**
* 返回码, 1成功0失败
*/
CODE((short)1, "code"),
/**
* 响应信息
*/
MSG((short)2, "msg");
private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
static {
for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
byName.put(field.getFieldName(), field);
}
}
/**
* Find the _Fields constant that matches fieldId, or null if its not found.
*/
public static _Fields findByThriftId(int fieldId) {
switch(fieldId) {
case 1: // CODE
return CODE;
case 2: // MSG
return MSG;
default:
return null;
}
}
/**
* Find the _Fields constant that matches fieldId, throwing an exception
* if it is not found.
*/
public static _Fields findByThriftIdOrThrow(int fieldId) {
_Fields fields = findByThriftId(fieldId);
if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
return fields;
}
/**
* Find the _Fields constant that matches name, or null if its not found.
*/
public static _Fields findByName(java.lang.String name) {
return byName.get(name);
}
private final short _thriftId;
private final java.lang.String _fieldName;
_Fields(short thriftId, java.lang.String fieldName) {
_thriftId = thriftId;
_fieldName = fieldName;
}
public short getThriftFieldId() {
return _thriftId;
}
public java.lang.String getFieldName() {
return _fieldName;
}
}
// isset id assignments
private static final int __CODE_ISSET_ID = 0;
private byte __isset_bitfield = 0;
public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
static {
java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
tmpMap.put(_Fields.CODE, new org.apache.thrift.meta_data.FieldMetaData("code", org.apache.thrift.TFieldRequirementType.DEFAULT,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
tmpMap.put(_Fields.MSG, new org.apache.thrift.meta_data.FieldMetaData("msg", org.apache.thrift.TFieldRequirementType.DEFAULT,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(QryResult.class, metaDataMap);
}
public QryResult() {
}
public QryResult(
int code,
java.lang.String msg)
{
this();
this.code = code;
setCodeIsSet(true);
this.msg = msg;
}
/**
* Performs a deep copy on <i>other</i>.
*/
public QryResult(QryResult other) {
__isset_bitfield = other.__isset_bitfield;
this.code = other.code;
if (other.isSetMsg()) {
this.msg = other.msg;
}
}
public QryResult deepCopy() {
return new QryResult(this);
}
@Override
public void clear() {
setCodeIsSet(false);
this.code = 0;
this.msg = null;
}
/**
* 返回码, 1成功0失败
*/
public int getCode() {
return this.code;
}
/**
* 返回码, 1成功0失败
*/
public QryResult setCode(int code) {
this.code = code;
setCodeIsSet(true);
return this;
}
public void unsetCode() {
__isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __CODE_ISSET_ID);
}
/** Returns true if field code is set (has been assigned a value) and false otherwise */
public boolean isSetCode() {
return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __CODE_ISSET_ID);
}
public void setCodeIsSet(boolean value) {
__isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __CODE_ISSET_ID, value);
}
/**
* 响应信息
*/
public java.lang.String getMsg() {
return this.msg;
}
/**
* 响应信息
*/
public QryResult setMsg(java.lang.String msg) {
this.msg = msg;
return this;
}
public void unsetMsg() {
this.msg = null;
}
/** Returns true if field msg is set (has been assigned a value) and false otherwise */
public boolean isSetMsg() {
return this.msg != null;
}
public void setMsgIsSet(boolean value) {
if (!value) {
this.msg = null;
}
}
public void setFieldValue(_Fields field, java.lang.Object value) {
switch (field) {
case CODE:
if (value == null) {
unsetCode();
} else {
setCode((java.lang.Integer)value);
}
break;
case MSG:
if (value == null) {
unsetMsg();
} else {
setMsg((java.lang.String)value);
}
break;
}
}
public java.lang.Object getFieldValue(_Fields field) {
switch (field) {
case CODE:
return getCode();
case MSG:
return getMsg();
}
throw new java.lang.IllegalStateException();
}
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
public boolean isSet(_Fields field) {
if (field == null) {
throw new java.lang.IllegalArgumentException();
}
switch (field) {
case CODE:
return isSetCode();
case MSG:
return isSetMsg();
}
throw new java.lang.IllegalStateException();
}
@Override
public boolean equals(java.lang.Object that) {
if (that == null)
return false;
if (that instanceof QryResult)
return this.equals((QryResult)that);
return false;
}
public boolean equals(QryResult that) {
if (that == null)
return false;
if (this == that)
return true;
boolean this_present_code = true;
boolean that_present_code = true;
if (this_present_code || that_present_code) {
if (!(this_present_code && that_present_code))
return false;
if (this.code != that.code)
return false;
}
boolean this_present_msg = true && this.isSetMsg();
boolean that_present_msg = true && that.isSetMsg();
if (this_present_msg || that_present_msg) {
if (!(this_present_msg && that_present_msg))
return false;
if (!this.msg.equals(that.msg))
return false;
}
return true;
}
@Override
public int hashCode() {
int hashCode = 1;
hashCode = hashCode * 8191 + code;
hashCode = hashCode * 8191 + ((isSetMsg()) ? 131071 : 524287);
if (isSetMsg())
hashCode = hashCode * 8191 + msg.hashCode();
return hashCode;
}
@Override
public int compareTo(QryResult other) {
if (!getClass().equals(other.getClass())) {
return getClass().getName().compareTo(other.getClass().getName());
}
int lastComparison = 0;
lastComparison = java.lang.Boolean.valueOf(isSetCode()).compareTo(other.isSetCode());
if (lastComparison != 0) {
return lastComparison;
}
if (isSetCode()) {
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.code, other.code);
if (lastComparison != 0) {
return lastComparison;
}
}
lastComparison = java.lang.Boolean.valueOf(isSetMsg()).compareTo(other.isSetMsg());
if (lastComparison != 0) {
return lastComparison;
}
if (isSetMsg()) {
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.msg, other.msg);
if (lastComparison != 0) {
return lastComparison;
}
}
return 0;
}
public _Fields fieldForId(int fieldId) {
return _Fields.findByThriftId(fieldId);
}
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
scheme(iprot).read(iprot, this);
}
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
scheme(oprot).write(oprot, this);
}
@Override
public java.lang.String toString() {
java.lang.StringBuilder sb = new java.lang.StringBuilder("QryResult(");
boolean first = true;
sb.append("code:");
sb.append(this.code);
first = false;
if (!first) sb.append(", ");
sb.append("msg:");
if (this.msg == null) {
sb.append("null");
} else {
sb.append(this.msg);
}
first = false;
sb.append(")");
return sb.toString();
}
public void validate() throws org.apache.thrift.TException {
// check for required fields
// check for sub-struct validity
}
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
try {
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
} catch (org.apache.thrift.TException te) {
throw new java.io.IOException(te);
}
}
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
try {
// it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
__isset_bitfield = 0;
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
} catch (org.apache.thrift.TException te) {
throw new java.io.IOException(te);
}
}
private static class QryResultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
public QryResultStandardScheme getScheme() {
return new QryResultStandardScheme();
}
}
private static class QryResultStandardScheme extends org.apache.thrift.scheme.StandardScheme<QryResult> {
public void read(org.apache.thrift.protocol.TProtocol iprot, QryResult struct) throws org.apache.thrift.TException {
org.apache.thrift.protocol.TField schemeField;
iprot.readStructBegin();
while (true)
{
schemeField = iprot.readFieldBegin();
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
break;
}
switch (schemeField.id) {
case 1: // CODE
if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
struct.code = iprot.readI32();
struct.setCodeIsSet(true);
} else {
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
case 2: // MSG
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
struct.msg = iprot.readString();
struct.setMsgIsSet(true);
} else {
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
default:
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
iprot.readFieldEnd();
}
iprot.readStructEnd();
// check for required fields of primitive type, which can't be checked in the validate method
struct.validate();
}
public void write(org.apache.thrift.protocol.TProtocol oprot, QryResult struct) throws org.apache.thrift.TException {
struct.validate();
oprot.writeStructBegin(STRUCT_DESC);
oprot.writeFieldBegin(CODE_FIELD_DESC);
oprot.writeI32(struct.code);
oprot.writeFieldEnd();
if (struct.msg != null) {
oprot.writeFieldBegin(MSG_FIELD_DESC);
oprot.writeString(struct.msg);
oprot.writeFieldEnd();
}
oprot.writeFieldStop();
oprot.writeStructEnd();
}
}
private static class QryResultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
public QryResultTupleScheme getScheme() {
return new QryResultTupleScheme();
}
}
private static class QryResultTupleScheme extends org.apache.thrift.scheme.TupleScheme<QryResult> {
@Override
public void write(org.apache.thrift.protocol.TProtocol prot, QryResult struct) throws org.apache.thrift.TException {
org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
java.util.BitSet optionals = new java.util.BitSet();
if (struct.isSetCode()) {
optionals.set(0);
}
if (struct.isSetMsg()) {
optionals.set(1);
}
oprot.writeBitSet(optionals, 2);
if (struct.isSetCode()) {
oprot.writeI32(struct.code);
}
if (struct.isSetMsg()) {
oprot.writeString(struct.msg);
}
}
@Override
public void read(org.apache.thrift.protocol.TProtocol prot, QryResult struct) throws org.apache.thrift.TException {
org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
java.util.BitSet incoming = iprot.readBitSet(2);
if (incoming.get(0)) {
struct.code = iprot.readI32();
struct.setCodeIsSet(true);
}
if (incoming.get(1)) {
struct.msg = iprot.readString();
struct.setMsgIsSet(true);
}
}
}
private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
}
}

@ -1,18 +0,0 @@
package core.thrift;
import org.apache.thrift.TException;
public class QueryImp implements TestQry.Iface {
@Override
public QryResult qryTest(int qryCode) throws TException {
QryResult result = new QryResult();
if(qryCode==1){
result.code = 1;
result.msg = "success";
}else{
result.code = 0;
result.msg = "fail";
}
return result;
}
}

@ -1,971 +0,0 @@
/**
* Autogenerated by Thrift Compiler (0.11.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
*/
package core.thrift;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.11.0)", date = "2018-04-28")
public class TestQry {
public interface Iface {
/**
* 测试查询接口当qryCode值为1时返回"成功"的响应信息qryCode值为其他值时返回"失败"的响应信息
* @param qryCode测试参数
*
* @param qryCode
*/
public QryResult qryTest(int qryCode) throws org.apache.thrift.TException;
}
public interface AsyncIface {
public void qryTest(int qryCode, org.apache.thrift.async.AsyncMethodCallback<QryResult> resultHandler) throws org.apache.thrift.TException;
}
public static class Client extends org.apache.thrift.TServiceClient implements Iface {
public static class Factory implements org.apache.thrift.TServiceClientFactory<Client> {
public Factory() {}
public Client getClient(org.apache.thrift.protocol.TProtocol prot) {
return new Client(prot);
}
public Client getClient(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) {
return new Client(iprot, oprot);
}
}
public Client(org.apache.thrift.protocol.TProtocol prot)
{
super(prot, prot);
}
public Client(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) {
super(iprot, oprot);
}
public QryResult qryTest(int qryCode) throws org.apache.thrift.TException
{
send_qryTest(qryCode);
return recv_qryTest();
}
public void send_qryTest(int qryCode) throws org.apache.thrift.TException
{
qryTest_args args = new qryTest_args();
args.setQryCode(qryCode);
sendBase("qryTest", args);
}
public QryResult recv_qryTest() throws org.apache.thrift.TException
{
qryTest_result result = new qryTest_result();
receiveBase(result, "qryTest");
if (result.isSetSuccess()) {
return result.success;
}
throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "qryTest failed: unknown result");
}
}
public static class AsyncClient extends org.apache.thrift.async.TAsyncClient implements AsyncIface {
public static class Factory implements org.apache.thrift.async.TAsyncClientFactory<AsyncClient> {
private org.apache.thrift.async.TAsyncClientManager clientManager;
private org.apache.thrift.protocol.TProtocolFactory protocolFactory;
public Factory(org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.protocol.TProtocolFactory protocolFactory) {
this.clientManager = clientManager;
this.protocolFactory = protocolFactory;
}
public AsyncClient getAsyncClient(org.apache.thrift.transport.TNonblockingTransport transport) {
return new AsyncClient(protocolFactory, clientManager, transport);
}
}
public AsyncClient(org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.transport.TNonblockingTransport transport) {
super(protocolFactory, clientManager, transport);
}
public void qryTest(int qryCode, org.apache.thrift.async.AsyncMethodCallback<QryResult> resultHandler) throws org.apache.thrift.TException {
checkReady();
qryTest_call method_call = new qryTest_call(qryCode, resultHandler, this, ___protocolFactory, ___transport);
this.___currentMethod = method_call;
___manager.call(method_call);
}
public static class qryTest_call extends org.apache.thrift.async.TAsyncMethodCall<QryResult> {
private int qryCode;
public qryTest_call(int qryCode, org.apache.thrift.async.AsyncMethodCallback<QryResult> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
super(client, protocolFactory, transport, resultHandler, false);
this.qryCode = qryCode;
}
public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("qryTest", org.apache.thrift.protocol.TMessageType.CALL, 0));
qryTest_args args = new qryTest_args();
args.setQryCode(qryCode);
args.write(prot);
prot.writeMessageEnd();
}
public QryResult getResult() throws org.apache.thrift.TException {
if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
throw new java.lang.IllegalStateException("Method call not finished!");
}
org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
return (new Client(prot)).recv_qryTest();
}
}
}
public static class Processor<I extends Iface> extends org.apache.thrift.TBaseProcessor<I> implements org.apache.thrift.TProcessor {
private static final org.slf4j.Logger _LOGGER = org.slf4j.LoggerFactory.getLogger(Processor.class.getName());
public Processor(I iface) {
super(iface, getProcessMap(new java.util.HashMap<java.lang.String, org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>>()));
}
protected Processor(I iface, java.util.Map<java.lang.String, org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>> processMap) {
super(iface, getProcessMap(processMap));
}
private static <I extends Iface> java.util.Map<java.lang.String, org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>> getProcessMap(java.util.Map<java.lang.String, org.apache.thrift.ProcessFunction<I, ? extends org.apache.thrift.TBase>> processMap) {
processMap.put("qryTest", new qryTest());
return processMap;
}
public static class qryTest<I extends Iface> extends org.apache.thrift.ProcessFunction<I, qryTest_args> {
public qryTest() {
super("qryTest");
}
public qryTest_args getEmptyArgsInstance() {
return new qryTest_args();
}
protected boolean isOneway() {
return false;
}
@Override
protected boolean handleRuntimeExceptions() {
return false;
}
public qryTest_result getResult(I iface, qryTest_args args) throws org.apache.thrift.TException {
qryTest_result result = new qryTest_result();
result.success = iface.qryTest(args.qryCode);
return result;
}
}
}
public static class AsyncProcessor<I extends AsyncIface> extends org.apache.thrift.TBaseAsyncProcessor<I> {
private static final org.slf4j.Logger _LOGGER = org.slf4j.LoggerFactory.getLogger(AsyncProcessor.class.getName());
public AsyncProcessor(I iface) {
super(iface, getProcessMap(new java.util.HashMap<java.lang.String, org.apache.thrift.AsyncProcessFunction<I, ? extends org.apache.thrift.TBase, ?>>()));
}
protected AsyncProcessor(I iface, java.util.Map<java.lang.String, org.apache.thrift.AsyncProcessFunction<I, ? extends org.apache.thrift.TBase, ?>> processMap) {
super(iface, getProcessMap(processMap));
}
private static <I extends AsyncIface> java.util.Map<java.lang.String, org.apache.thrift.AsyncProcessFunction<I, ? extends org.apache.thrift.TBase,?>> getProcessMap(java.util.Map<java.lang.String, org.apache.thrift.AsyncProcessFunction<I, ? extends org.apache.thrift.TBase, ?>> processMap) {
processMap.put("qryTest", new qryTest());
return processMap;
}
public static class qryTest<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, qryTest_args, QryResult> {
public qryTest() {
super("qryTest");
}
public qryTest_args getEmptyArgsInstance() {
return new qryTest_args();
}
public org.apache.thrift.async.AsyncMethodCallback<QryResult> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
final org.apache.thrift.AsyncProcessFunction fcall = this;
return new org.apache.thrift.async.AsyncMethodCallback<QryResult>() {
public void onComplete(QryResult o) {
qryTest_result result = new qryTest_result();
result.success = o;
try {
fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
} catch (org.apache.thrift.transport.TTransportException e) {
_LOGGER.error("TTransportException writing to internal frame buffer", e);
fb.close();
} catch (java.lang.Exception e) {
_LOGGER.error("Exception writing to internal frame buffer", e);
onError(e);
}
}
public void onError(java.lang.Exception e) {
byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
org.apache.thrift.TSerializable msg;
qryTest_result result = new qryTest_result();
if (e instanceof org.apache.thrift.transport.TTransportException) {
_LOGGER.error("TTransportException inside handler", e);
fb.close();
return;
} else if (e instanceof org.apache.thrift.TApplicationException) {
_LOGGER.error("TApplicationException inside handler", e);
msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
msg = (org.apache.thrift.TApplicationException)e;
} else {
_LOGGER.error("Exception inside handler", e);
msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
}
try {
fcall.sendResponse(fb,msg,msgType,seqid);
} catch (java.lang.Exception ex) {
_LOGGER.error("Exception writing to internal frame buffer", ex);
fb.close();
}
}
};
}
protected boolean isOneway() {
return false;
}
public void start(I iface, qryTest_args args, org.apache.thrift.async.AsyncMethodCallback<QryResult> resultHandler) throws org.apache.thrift.TException {
iface.qryTest(args.qryCode,resultHandler);
}
}
}
public static class qryTest_args implements org.apache.thrift.TBase<qryTest_args, qryTest_args._Fields>, java.io.Serializable, Cloneable, Comparable<qryTest_args> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("qryTest_args");
private static final org.apache.thrift.protocol.TField QRY_CODE_FIELD_DESC = new org.apache.thrift.protocol.TField("qryCode", org.apache.thrift.protocol.TType.I32, (short)1);
private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new qryTest_argsStandardSchemeFactory();
private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new qryTest_argsTupleSchemeFactory();
public int qryCode; // required
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
QRY_CODE((short)1, "qryCode");
private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
static {
for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
byName.put(field.getFieldName(), field);
}
}
/**
* Find the _Fields constant that matches fieldId, or null if its not found.
*/
public static _Fields findByThriftId(int fieldId) {
switch(fieldId) {
case 1: // QRY_CODE
return QRY_CODE;
default:
return null;
}
}
/**
* Find the _Fields constant that matches fieldId, throwing an exception
* if it is not found.
*/
public static _Fields findByThriftIdOrThrow(int fieldId) {
_Fields fields = findByThriftId(fieldId);
if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
return fields;
}
/**
* Find the _Fields constant that matches name, or null if its not found.
*/
public static _Fields findByName(java.lang.String name) {
return byName.get(name);
}
private final short _thriftId;
private final java.lang.String _fieldName;
_Fields(short thriftId, java.lang.String fieldName) {
_thriftId = thriftId;
_fieldName = fieldName;
}
public short getThriftFieldId() {
return _thriftId;
}
public java.lang.String getFieldName() {
return _fieldName;
}
}
// isset id assignments
private static final int __QRYCODE_ISSET_ID = 0;
private byte __isset_bitfield = 0;
public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
static {
java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
tmpMap.put(_Fields.QRY_CODE, new org.apache.thrift.meta_data.FieldMetaData("qryCode", org.apache.thrift.TFieldRequirementType.DEFAULT,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(qryTest_args.class, metaDataMap);
}
public qryTest_args() {
}
public qryTest_args(
int qryCode)
{
this();
this.qryCode = qryCode;
setQryCodeIsSet(true);
}
/**
* Performs a deep copy on <i>other</i>.
*/
public qryTest_args(qryTest_args other) {
__isset_bitfield = other.__isset_bitfield;
this.qryCode = other.qryCode;
}
public qryTest_args deepCopy() {
return new qryTest_args(this);
}
@Override
public void clear() {
setQryCodeIsSet(false);
this.qryCode = 0;
}
public int getQryCode() {
return this.qryCode;
}
public qryTest_args setQryCode(int qryCode) {
this.qryCode = qryCode;
setQryCodeIsSet(true);
return this;
}
public void unsetQryCode() {
__isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __QRYCODE_ISSET_ID);
}
/** Returns true if field qryCode is set (has been assigned a value) and false otherwise */
public boolean isSetQryCode() {
return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __QRYCODE_ISSET_ID);
}
public void setQryCodeIsSet(boolean value) {
__isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __QRYCODE_ISSET_ID, value);
}
public void setFieldValue(_Fields field, java.lang.Object value) {
switch (field) {
case QRY_CODE:
if (value == null) {
unsetQryCode();
} else {
setQryCode((java.lang.Integer)value);
}
break;
}
}
public java.lang.Object getFieldValue(_Fields field) {
switch (field) {
case QRY_CODE:
return getQryCode();
}
throw new java.lang.IllegalStateException();
}
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
public boolean isSet(_Fields field) {
if (field == null) {
throw new java.lang.IllegalArgumentException();
}
switch (field) {
case QRY_CODE:
return isSetQryCode();
}
throw new java.lang.IllegalStateException();
}
@Override
public boolean equals(java.lang.Object that) {
if (that == null)
return false;
if (that instanceof qryTest_args)
return this.equals((qryTest_args)that);
return false;
}
public boolean equals(qryTest_args that) {
if (that == null)
return false;
if (this == that)
return true;
boolean this_present_qryCode = true;
boolean that_present_qryCode = true;
if (this_present_qryCode || that_present_qryCode) {
if (!(this_present_qryCode && that_present_qryCode))
return false;
if (this.qryCode != that.qryCode)
return false;
}
return true;
}
@Override
public int hashCode() {
int hashCode = 1;
hashCode = hashCode * 8191 + qryCode;
return hashCode;
}
@Override
public int compareTo(qryTest_args other) {
if (!getClass().equals(other.getClass())) {
return getClass().getName().compareTo(other.getClass().getName());
}
int lastComparison = 0;
lastComparison = java.lang.Boolean.valueOf(isSetQryCode()).compareTo(other.isSetQryCode());
if (lastComparison != 0) {
return lastComparison;
}
if (isSetQryCode()) {
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.qryCode, other.qryCode);
if (lastComparison != 0) {
return lastComparison;
}
}
return 0;
}
public _Fields fieldForId(int fieldId) {
return _Fields.findByThriftId(fieldId);
}
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
scheme(iprot).read(iprot, this);
}
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
scheme(oprot).write(oprot, this);
}
@Override
public java.lang.String toString() {
java.lang.StringBuilder sb = new java.lang.StringBuilder("qryTest_args(");
boolean first = true;
sb.append("qryCode:");
sb.append(this.qryCode);
first = false;
sb.append(")");
return sb.toString();
}
public void validate() throws org.apache.thrift.TException {
// check for required fields
// check for sub-struct validity
}
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
try {
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
} catch (org.apache.thrift.TException te) {
throw new java.io.IOException(te);
}
}
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
try {
// it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
__isset_bitfield = 0;
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
} catch (org.apache.thrift.TException te) {
throw new java.io.IOException(te);
}
}
private static class qryTest_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
public qryTest_argsStandardScheme getScheme() {
return new qryTest_argsStandardScheme();
}
}
private static class qryTest_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<qryTest_args> {
public void read(org.apache.thrift.protocol.TProtocol iprot, qryTest_args struct) throws org.apache.thrift.TException {
org.apache.thrift.protocol.TField schemeField;
iprot.readStructBegin();
while (true)
{
schemeField = iprot.readFieldBegin();
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
break;
}
switch (schemeField.id) {
case 1: // QRY_CODE
if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
struct.qryCode = iprot.readI32();
struct.setQryCodeIsSet(true);
} else {
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
default:
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
iprot.readFieldEnd();
}
iprot.readStructEnd();
// check for required fields of primitive type, which can't be checked in the validate method
struct.validate();
}
public void write(org.apache.thrift.protocol.TProtocol oprot, qryTest_args struct) throws org.apache.thrift.TException {
struct.validate();
oprot.writeStructBegin(STRUCT_DESC);
oprot.writeFieldBegin(QRY_CODE_FIELD_DESC);
oprot.writeI32(struct.qryCode);
oprot.writeFieldEnd();
oprot.writeFieldStop();
oprot.writeStructEnd();
}
}
private static class qryTest_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
public qryTest_argsTupleScheme getScheme() {
return new qryTest_argsTupleScheme();
}
}
private static class qryTest_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<qryTest_args> {
@Override
public void write(org.apache.thrift.protocol.TProtocol prot, qryTest_args struct) throws org.apache.thrift.TException {
org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
java.util.BitSet optionals = new java.util.BitSet();
if (struct.isSetQryCode()) {
optionals.set(0);
}
oprot.writeBitSet(optionals, 1);
if (struct.isSetQryCode()) {
oprot.writeI32(struct.qryCode);
}
}
@Override
public void read(org.apache.thrift.protocol.TProtocol prot, qryTest_args struct) throws org.apache.thrift.TException {
org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
java.util.BitSet incoming = iprot.readBitSet(1);
if (incoming.get(0)) {
struct.qryCode = iprot.readI32();
struct.setQryCodeIsSet(true);
}
}
}
private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
}
}
public static class qryTest_result implements org.apache.thrift.TBase<qryTest_result, qryTest_result._Fields>, java.io.Serializable, Cloneable, Comparable<qryTest_result> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("qryTest_result");
private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new qryTest_resultStandardSchemeFactory();
private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new qryTest_resultTupleSchemeFactory();
public QryResult success; // required
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
SUCCESS((short)0, "success");
private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
static {
for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
byName.put(field.getFieldName(), field);
}
}
/**
* Find the _Fields constant that matches fieldId, or null if its not found.
*/
public static _Fields findByThriftId(int fieldId) {
switch(fieldId) {
case 0: // SUCCESS
return SUCCESS;
default:
return null;
}
}
/**
* Find the _Fields constant that matches fieldId, throwing an exception
* if it is not found.
*/
public static _Fields findByThriftIdOrThrow(int fieldId) {
_Fields fields = findByThriftId(fieldId);
if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
return fields;
}
/**
* Find the _Fields constant that matches name, or null if its not found.
*/
public static _Fields findByName(java.lang.String name) {
return byName.get(name);
}
private final short _thriftId;
private final java.lang.String _fieldName;
_Fields(short thriftId, java.lang.String fieldName) {
_thriftId = thriftId;
_fieldName = fieldName;
}
public short getThriftFieldId() {
return _thriftId;
}
public java.lang.String getFieldName() {
return _fieldName;
}
}
// isset id assignments
public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
static {
java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT,
new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, QryResult.class)));
metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(qryTest_result.class, metaDataMap);
}
public qryTest_result() {
}
public qryTest_result(
QryResult success)
{
this();
this.success = success;
}
/**
* Performs a deep copy on <i>other</i>.
*/
public qryTest_result(qryTest_result other) {
if (other.isSetSuccess()) {
this.success = new QryResult(other.success);
}
}
public qryTest_result deepCopy() {
return new qryTest_result(this);
}
@Override
public void clear() {
this.success = null;
}
public QryResult getSuccess() {
return this.success;
}
public qryTest_result setSuccess(QryResult success) {
this.success = success;
return this;
}
public void unsetSuccess() {
this.success = null;
}
/** Returns true if field success is set (has been assigned a value) and false otherwise */
public boolean isSetSuccess() {
return this.success != null;
}
public void setSuccessIsSet(boolean value) {
if (!value) {
this.success = null;
}
}
public void setFieldValue(_Fields field, java.lang.Object value) {
switch (field) {
case SUCCESS:
if (value == null) {
unsetSuccess();
} else {
setSuccess((QryResult)value);
}
break;
}
}
public java.lang.Object getFieldValue(_Fields field) {
switch (field) {
case SUCCESS:
return getSuccess();
}
throw new java.lang.IllegalStateException();
}
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
public boolean isSet(_Fields field) {
if (field == null) {
throw new java.lang.IllegalArgumentException();
}
switch (field) {
case SUCCESS:
return isSetSuccess();
}
throw new java.lang.IllegalStateException();
}
@Override
public boolean equals(java.lang.Object that) {
if (that == null)
return false;
if (that instanceof qryTest_result)
return this.equals((qryTest_result)that);
return false;
}
public boolean equals(qryTest_result that) {
if (that == null)
return false;
if (this == that)
return true;
boolean this_present_success = true && this.isSetSuccess();
boolean that_present_success = true && that.isSetSuccess();
if (this_present_success || that_present_success) {
if (!(this_present_success && that_present_success))
return false;
if (!this.success.equals(that.success))
return false;
}
return true;
}
@Override
public int hashCode() {
int hashCode = 1;
hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
if (isSetSuccess())
hashCode = hashCode * 8191 + success.hashCode();
return hashCode;
}
@Override
public int compareTo(qryTest_result other) {
if (!getClass().equals(other.getClass())) {
return getClass().getName().compareTo(other.getClass().getName());
}
int lastComparison = 0;
lastComparison = java.lang.Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
if (lastComparison != 0) {
return lastComparison;
}
if (isSetSuccess()) {
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
if (lastComparison != 0) {
return lastComparison;
}
}
return 0;
}
public _Fields fieldForId(int fieldId) {
return _Fields.findByThriftId(fieldId);
}
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
scheme(iprot).read(iprot, this);
}
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
scheme(oprot).write(oprot, this);
}
@Override
public java.lang.String toString() {
java.lang.StringBuilder sb = new java.lang.StringBuilder("qryTest_result(");
boolean first = true;
sb.append("success:");
if (this.success == null) {
sb.append("null");
} else {
sb.append(this.success);
}
first = false;
sb.append(")");
return sb.toString();
}
public void validate() throws org.apache.thrift.TException {
// check for required fields
// check for sub-struct validity
if (success != null) {
success.validate();
}
}
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
try {
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
} catch (org.apache.thrift.TException te) {
throw new java.io.IOException(te);
}
}
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
try {
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
} catch (org.apache.thrift.TException te) {
throw new java.io.IOException(te);
}
}
private static class qryTest_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
public qryTest_resultStandardScheme getScheme() {
return new qryTest_resultStandardScheme();
}
}
private static class qryTest_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<qryTest_result> {
public void read(org.apache.thrift.protocol.TProtocol iprot, qryTest_result struct) throws org.apache.thrift.TException {
org.apache.thrift.protocol.TField schemeField;
iprot.readStructBegin();
while (true)
{
schemeField = iprot.readFieldBegin();
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
break;
}
switch (schemeField.id) {
case 0: // SUCCESS
if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
struct.success = new QryResult();
struct.success.read(iprot);
struct.setSuccessIsSet(true);
} else {
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
default:
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
iprot.readFieldEnd();
}
iprot.readStructEnd();
// check for required fields of primitive type, which can't be checked in the validate method
struct.validate();
}
public void write(org.apache.thrift.protocol.TProtocol oprot, qryTest_result struct) throws org.apache.thrift.TException {
struct.validate();
oprot.writeStructBegin(STRUCT_DESC);
if (struct.success != null) {
oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
struct.success.write(oprot);
oprot.writeFieldEnd();
}
oprot.writeFieldStop();
oprot.writeStructEnd();
}
}
private static class qryTest_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
public qryTest_resultTupleScheme getScheme() {
return new qryTest_resultTupleScheme();
}
}
private static class qryTest_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<qryTest_result> {
@Override
public void write(org.apache.thrift.protocol.TProtocol prot, qryTest_result struct) throws org.apache.thrift.TException {
org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
java.util.BitSet optionals = new java.util.BitSet();
if (struct.isSetSuccess()) {
optionals.set(0);
}
oprot.writeBitSet(optionals, 1);
if (struct.isSetSuccess()) {
struct.success.write(oprot);
}
}
@Override
public void read(org.apache.thrift.protocol.TProtocol prot, qryTest_result struct) throws org.apache.thrift.TException {
org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
java.util.BitSet incoming = iprot.readBitSet(1);
if (incoming.get(0)) {
struct.success = new QryResult();
struct.success.read(iprot);
struct.setSuccessIsSet(true);
}
}
}
private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
}
}
}

@ -1,27 +1,56 @@
package core.thrift;
import core.thrift.comment.QueryComment;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TFramedTransport;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
import java.util.ArrayList;
import java.util.List;
public class ThriftClientDemo {
private final static int DEFAULT_QRY_CODE = 1;
public static void main(String[] args){
try {
TTransport tTransport = getTTransport();
TProtocol protocol = new TBinaryProtocol(tTransport);
TestQry.Client client = new TestQry.Client(protocol);
QryResult result = client.qryTest(DEFAULT_QRY_CODE);
System.out.println("code="+result.code+" msg="+result.msg);
}catch (Exception e) {
e.printStackTrace();
}
private static final String host="127.0.0.1";
private static final int port=2233;
private static Logger log=LogManager.getLogger();
public static void main(String[] args) throws Exception {
downloadXml(new ArrayList<Integer>(){{
add(12026697);
}},"测试弹幕");
}
public static List<Integer> commentSumList(List<Integer> cids) throws Exception {
List<Integer> result= client().commentSumList(cids);
log.info("查询结果:"+result);
return result;
}
public static int commentSum(int cid) throws Exception {
int result=client().commentSum(cid);
log.info("查询结果:"+result);
return result;
}
public static String downloadXml(List<Integer> cids,String fileName) throws Exception {
String result=client().download(cids,fileName);
log.info("查询结果:"+result);
return result;
}
private static QueryComment.Client client() throws Exception {
TTransport tTransport = getTTransport();
TProtocol protocol = new TBinaryProtocol(tTransport);
return new QueryComment.Client(protocol);
}
private static TTransport getTTransport() throws Exception{
try{
TTransport tTransport = getTTransport("sukura.top", 2233, 5000);
TTransport tTransport = getTTransport(host, port, 5000);
if(!tTransport.isOpen()){
tTransport.open();
}

@ -1,5 +1,6 @@
package core.thrift;
import core.thrift.comment.QueryComment;
import org.apache.thrift.TProcessorFactory;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.server.TNonblockingServer;
@ -13,7 +14,7 @@ public class ThriftServerDemo {
try {
TNonblockingServerSocket socket = new TNonblockingServerSocket(2233);
TestQry.Processor processor = new TestQry.Processor(new QueryImp());
QueryComment.Processor processor = new QueryComment.Processor(new QueryComment.QueryImpl());
TNonblockingServer.Args arg = new TNonblockingServer.Args(socket);
arg.protocolFactory(new TBinaryProtocol.Factory());
arg.transportFactory(new TFramedTransport.Factory());

File diff suppressed because it is too large Load Diff

@ -1,23 +0,0 @@
/**
* TestQry.thrift
* struct和一个服务接口service
* thrift-0.9.2
**/
namespace java com.thrift
struct QryResult {
/**
*, 10
*/
1:i32 code;
/**
*
*/
2:string msg;
}
service TestQry{
/**
* qryCode值为1时返回"成功"qryCode值为其他值时返回"失败"
* @param qryCode测试参数
*/
QryResult qryTest(1:i32 qryCode)
}

@ -4,6 +4,10 @@ import db.model.AbstractModel;
import java.util.List;
/**
* 分页数据实体
* @param <T>
*/
public class PageResult<T extends AbstractModel> {
private long count;

@ -11,16 +11,16 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.hibernate.criterion.DetachedCriteria;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.ResolvableType;
import org.springframework.dao.DataAccessException;
import org.springframework.http.MediaType;
import org.springframework.util.ClassUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import web.service.BaseService;
import java.lang.reflect.ParameterizedType;
/**
* Created by reborn on 2017/9/14.
*/
@ -30,17 +30,21 @@ public abstract class BaseController<T extends AbstractModel,A extends T,E exten
@Autowired
protected E service;
private Class<T> tClass;
private ResolvableType resolvableType=ResolvableType.forClass(ClassUtils.getUserClass(this.getClass()));
protected final String tableName;
public BaseController() {
TableInfo tableInfo=HibernateConfig.getTableNote(getCommandClass());
if(tableInfo!=null&&StringUtils.isNotEmpty(tableInfo.comment())){
tableName=tableInfo.comment();
}else {
tableName=getCommandClass().getName();
if(getResolvableType()!=AbstractModel.class){
TableInfo tableInfo=HibernateConfig.getTableNote(getResolvableType());
if(tableInfo!=null&&StringUtils.isNotEmpty(tableInfo.comment())){
tableName=tableInfo.comment();
}else {
tableName=getResolvableType().getName();
}
}else{
tableName=null;
}
}
@ -79,20 +83,16 @@ public abstract class BaseController<T extends AbstractModel,A extends T,E exten
}
public Class<T> getCommandClass(){
// log.info(ResolvableType.forField(ReflectionUtils.findField(this.getClass(),"service")));
if(tClass==null){
if(this.getClass().getGenericSuperclass() instanceof ParameterizedType){
tClass=(Class<T>) ((ParameterizedType)this.getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}else{
tClass= (Class<T>) AbstractModel.class;
}
}
return tClass;
public Class<?> getResolvableType() {
return getResolvableType(0);
}
public Class<?> getResolvableType(int index) {
return resolvableType.getSuperType().getGeneric(index).resolve();
}
protected DetachedCriteria getDetachedCriteria(A queryCommand){
return DetachedCriteria.forClass(getCommandClass());
return DetachedCriteria.forClass(getResolvableType());
}
protected abstract boolean checkAction(DBAction action);

@ -1,50 +1,89 @@
package web.controller;
import core.thrift.ThriftClientDemo;
import db.form.DBAction;
import db.form.PageResult;
import db.model.bilibili.DataModel;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Property;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import web.html.data.DataTable;
import web.html.data.OtherDataResult;
import web.model.DataModelForm;
import web.service.DataService;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
@Controller
@RequestMapping("/data")
public class DataController extends TableController<DataModel, DataModelForm,DataService> {
public class DataController extends TableController<DataModel, DataModelForm, DataService, OtherDataResult,DataTable<DataModel>> {
private final String regionJson=IOUtils.toString(DataController.class.getResourceAsStream("/region.json"), Charset.forName("UTF-8"));
private final String regionJson = IOUtils.toString(DataController.class.getResourceAsStream("/region.json"), Charset.forName("UTF-8"));
public DataController() throws IOException {
}
@RequestMapping
public String find(HttpSession session,Model model) {
session.setAttribute("regionJson",regionJson);
return super.find(model,new DataModelForm(),new PageResult(0,10));
public String find(HttpSession session, Model model) throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException {
session.setAttribute("regionJson", regionJson);
return super.find(model, new DataModelForm(), new DataTable<>(0, 10));
}
@RequestMapping("start/{size}")
public void start(@PathVariable Integer size){
public void start(@PathVariable Integer size) {
stop();
service.start(size);
}
@ResponseBody
@RequestMapping(value = "count/{cid}")
public Integer count(@PathVariable int cid) {
// try {
// return ThriftClientDemo.commentSum(cid);
// }catch (Exception e){
// log.error(e);
// }
return null;
}
@RequestMapping("download")
public ResponseEntity export(DataModelForm form) throws Exception {
if(StringUtils.isNotEmpty(form.getFileName())&&form.getCids()!=null&&!form.getCids().isEmpty()) {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentDispositionFormData("attachment", form.getFileName()+".zip");
String filePath=ThriftClientDemo.downloadXml(form.getCids(),form.getFileName());
if(filePath!=null) {
return new ResponseEntity<>(FileUtils.readFileToByteArray(new File(filePath)), headers, HttpStatus.CREATED);
}else{
return new ResponseEntity<>("弹幕下载失败", HttpStatus.INTERNAL_SERVER_ERROR);
}
}else{
return new ResponseEntity("参数异常",HttpStatus.BAD_REQUEST);
}
}
@RequestMapping("stop")
public void stop(){
public void stop() {
service.stop();
}
@ -55,9 +94,9 @@ public class DataController extends TableController<DataModel, DataModelForm,Dat
@Override
protected DetachedCriteria getDetachedCriteria(DataModelForm queryCommand) {
DetachedCriteria criteria= super.getDetachedCriteria(queryCommand);
if(StringUtils.isNotEmpty(queryCommand.getTitle())){
criteria.add(Property.forName("title").like(queryCommand.getTitle(),MatchMode.ANYWHERE));
DetachedCriteria criteria = super.getDetachedCriteria(queryCommand);
if (StringUtils.isNotEmpty(queryCommand.getTitle())) {
criteria.add(Property.forName("title").like(queryCommand.getTitle(), MatchMode.ANYWHERE));
}
return criteria;
@ -72,4 +111,11 @@ public class DataController extends TableController<DataModel, DataModelForm,Dat
protected long rowCount(DataModelForm command) {
return service.rowCount(command);
}
@Override
protected List<OtherDataResult> otherDatas(DataModelForm command) {
return new ArrayList<OtherDataResult>(){{
add(new OtherDataResult());
}};
}
}

@ -1,40 +1,48 @@
package web.controller;
import db.form.DBAction;
import db.form.PageResult;
import db.form.Type;
import db.model.AbstractModel;
import org.springframework.dao.DataAccessException;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import web.html.OtherResult;
import web.html.Table;
import web.service.BaseService;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
public abstract class TableController<T extends AbstractModel,A extends T,E extends BaseService> extends BaseController<T,A,E> {
public abstract class TableController<T extends AbstractModel,A extends T,E extends BaseService,D extends OtherResult,B extends Table<D,T>> extends BaseController<T,A,E> {
private static final String otherColumns="otherColumns";
private static final int typeIndex=4;
@RequestMapping("table")
public String find(Model model,@ModelAttribute("command") A command,PageResult pageResult){
public String find(Model model,@ModelAttribute("command") A command,B pageResult) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
DBAction action=DBAction.R;
log.info(tableName+ "进行批量" + action.getCh() + "操作请求");
PageResult result;
B result;
if(checkAction(action)) {
try {
Long rowCount=rowCount(command);
if(rowCount>0) {
List list = find(command, pageResult.getCurrentPage()*pageResult.getPageSize(), pageResult.getPageSize());
result=new PageResult<T>(rowCount, pageResult.getCurrentPage(),list,pageResult.getPageSize() , Type.success);
List<D> otherDatas= otherDatas(command);
result= (B) getResolvableType(typeIndex).getConstructor(long.class,int.class,List.class,int.class,Type.class,List.class).newInstance(rowCount, pageResult.getCurrentPage(),list,pageResult.getPageSize() , Type.success,otherDatas);
}else{
result=new PageResult(Type.fail,"没有记录");
result= (B) getResolvableType(typeIndex).getConstructor(Type.class,String.class).newInstance(Type.fail,"没有记录");
}
} catch (DataAccessException e) {
log.error(e);
result=new PageResult(Type.fail,"非法操作");
result= (B) getResolvableType(typeIndex).getConstructor(Type.class,String.class).newInstance(Type.fail,"非法操作");
}
}else{
result=new PageResult(Type.fail,tableName + "不允许" + action.getCh() + "操作");
result= (B) getResolvableType(typeIndex).getConstructor(Type.class,String.class).newInstance(Type.fail,tableName + "不允许" + action.getCh() + "操作");
}
model.addAttribute("datas", result);
@ -54,4 +62,13 @@ public abstract class TableController<T extends AbstractModel,A extends T,E exte
return service.rowCount(getDetachedCriteria(command));
}
/**
* 额外数据
* @param command
* @return
*/
protected List<D> otherDatas(A command){
return null;
}
}

@ -0,0 +1,5 @@
package web.html;
public interface OtherResult {
}

@ -0,0 +1,69 @@
package web.html;
import db.form.PageResult;
import db.form.Type;
import db.model.AbstractModel;
import java.util.List;
public abstract class Table<E extends OtherResult,T extends AbstractModel> extends PageResult<T> implements TableResult{
private static String importJspPath;
private static List<String> titles;
private static List<String> otherTitles;
private static List<String> columns;
private List<E> otherData;
public Table() {
}
public Table(int currentPage, int pageSize) {
super(currentPage, pageSize);
}
public Table(long count, int currentPage, List<T> datas, int pageSize, Type type,List<E> otherData) {
super(count, currentPage, datas, pageSize, type);
this.otherData = otherData;
}
public Table(Type type, String errorMsg) {
super(type, errorMsg);
}
public String getImportJspPath() {
if(importJspPath==null){
importJspPath=importJspPath();
}
return importJspPath;
}
public List<String> getTitles() {
if(titles==null){
titles=titles();
}
return titles;
}
public List<String> getOtherTitles() {
if(otherTitles==null){
otherTitles=otherTitles();
}
return otherTitles;
}
public List<String> getColumns() {
if(columns==null){
columns=columns();
}
return columns;
}
public List<E> getOtherData() {
return otherData;
}
}

@ -0,0 +1,29 @@
package web.html;
import java.util.List;
public interface TableResult {
/**
* jsp路径
* @return
*/
String importJspPath();
/**
* 显示列名
* @return
*/
List<String> titles();
/**
* 显示实体属性
* @return
*/
List<String> columns();
/**
* 显示其他列名
* @return
*/
List<String> otherTitles();
}

@ -0,0 +1,62 @@
package web.html.data;
import db.form.Type;
import db.model.bilibili.DataModel;
import web.html.Table;
import java.util.ArrayList;
import java.util.List;
public class DataTable<T extends DataModel> extends Table<OtherDataResult,T> {
public DataTable(int currentPage, int pageSize) {
super(currentPage, pageSize);
}
public DataTable(long count, int currentPage, List<T> datas, int pageSize, Type type, List<OtherDataResult> otherData) {
super(count, currentPage, datas, pageSize, type, otherData);
}
public DataTable(Type type, String errorMsg) {
super(type, errorMsg);
}
public DataTable(){
}
@Override
public String importJspPath() {
return "data/";
}
@Override
public List<String> titles() {
return new ArrayList<String>() {{
add("弹幕编号");
add("AV号");
add("视频标题");
add("视频副标题");
}};
}
@Override
public List<String> columns() {
return new ArrayList<String>() {{
add("cid");
add("aid");
add("title");
add("subtitle");
}};
}
@Override
public List<String> otherTitles() {
return new ArrayList<String>() {{
add("弹幕数");
}};
}
}

@ -0,0 +1,7 @@
package web.html.data;
import web.html.OtherResult;
public class OtherDataResult implements OtherResult {
}

@ -1,10 +1,16 @@
package web.model;
import db.model.bilibili.DataModel;
import java.util.List;
public class DataModelForm extends db.model.bilibili.DataModel {
public class DataModelForm extends DataModel {
private List<Integer> typeIds;
private List<Integer> cids;
private String fileName;
public List<Integer> getTypeIds() {
return typeIds;
}
@ -12,4 +18,20 @@ public class DataModelForm extends db.model.bilibili.DataModel {
public void setTypeIds(List<Integer> typeIds) {
this.typeIds = typeIds;
}
public List<Integer> getCids() {
return cids;
}
public void setCids(List<Integer> cids) {
this.cids = cids;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
}

@ -65,7 +65,10 @@
</div>
</div>
<div class="col-auto">
<button type="button" class="btn btn-secondary">查询</button>
<button type="button" class="btn btn-secondary" id="query">查询</button>
</div>
<div class="col-auto">
<button type="button" class="btn btn-secondary" id="download">下载选中弹幕</button>
</div>
</div>
@ -110,10 +113,22 @@
$(".dropdown-item[data-type="+$(this).data("type")+"]").show();
});
$(".btn-secondary").click(function () {
$("#query,#pageButton button").click(function () {
$("#pageForm").attr("action","/data/table?currentPage="+($(this).val()==''?0:$(this).val())+"&pageSize=${datas.pageSize}").submit();
});
$("#download").click(function(){
if($("input[name=cids]:not([disabled]):checked").length==0){
alert("清选中需要下载的弹幕");
return;
}
var fileNmae;
if($("#query").val()!=''){
fileNmae=$("#query").val();
}else{
fileNmae=new Date().getTime();
}
$("#pageForm").attr("action","/data/download?fileName="+fileNmae).submit();
});
});

@ -0,0 +1,56 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
Created by IntelliJ IDEA.
User: 10295
Date: 2018/6/3
Time: 20:55
To change this template use File | Settings | File Templates.
--%>
<%@ page pageEncoding="utf-8" %>
<html>
<head>
<c:if test="${param.index==0}">
<script>
function get(cid, i) {
$("td[cid=" + cid + "]").find("span").text("获取中");
$.get("/data/count/" + cid, function (result) {
if (result>=0) {
if(result > 0){
$("#cid_" + cid).removeAttr("disabled");
}
$("td[cid=" + cid + "]").text(result);
}else {
$("td[cid=" + cid + "]").find("span").html('<a href="javascript:get('+cid+',0)">获取异常,点击重新获取</a>');
}
});
}
$(function () {
$.each($("td[cid]"), function () {
get($(this).attr("cid"), 0);
});
});
</script>
</c:if>
</head>
<body>
<td cid="${param.id}">
<span>获取中</span>
<svg aria-hidden="true" data-prefix="fas" data-icon="spinner" role="img"
style="width: 20px;height: 20px"
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"
class="svg-inline--fa fa-spinner fa-w-16 fa-spin fa-lg">
<path fill="currentColor"
d="M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"
class=""></path>
</svg>
<svg aria-hidden="true" data-prefix="fas" data-icon="spinner" role="img" xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 512 512" class="svg-inline--fa fa-spinner fa-w-16 fa-lg" hidden>
<path fill="currentColor"
d="M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"
class=""></path>
</svg>
</td>
</body>
</html>

@ -5,6 +5,21 @@
<%@ page pageEncoding="utf-8" %>
<head>
<c:import url="head.jsp"/>
<c:if test="${!empty datas.columns}">
<script>
$(function () {
$("#checkAll").click(function () {
if ($(this).is(":checked")) {
$("input[name=cids]:not([disabled])").prop("checked", true);
} else {
$("input[name=cids]:not([disabled])").prop("checked", false);
}
});
});
</script>
</c:if>
</head>
@ -14,30 +29,79 @@
<form:form id="pageForm">
<c:import url="form.jsp"/>
<c:import url="${datas.importJspPath}/form.jsp"/>
<table class="table">
<thead>
<tr>
<th>cid</th>
<th>aid</th>
<th>title</th>
<th>subtitle</th>
<th>author</th>
<c:choose>
<c:when test="${!empty datas.titles}">
<th>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="checkAll" />
${datas.titles[0]}
<label class="custom-control-label" for="checkAll">${data[datas.columns[0]]}</label>
</div>
</th>
<c:forEach items="${datas.titles}" var="title" begin="1">
<th>${title}</th>
</c:forEach>
<c:if test="${!empty datas.otherTitles}">
<c:forEach items="${datas.otherTitles}" var="title">
<th>${title}</th>
</c:forEach>
</c:if>
</c:when>
<c:otherwise>
没有设置标题显示
</c:otherwise>
</c:choose>
</tr>
</thead>
<tbody>
<c:forEach items="${datas.datas}" var="data">
<tr>
<td>${data.cid}</td>
<td>${data.aid}</td>
<td>${data.title}</td>
<td>${data.subtitle}</td>
<td>${data.author}</td>
</tr>
</c:forEach>
<c:choose>
<c:when test="${!empty datas.columns}">
<c:forEach items="${datas.datas}" var="data" varStatus="i">
<tr>
<td>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input"
id="${datas.columns[0]}_${data[datas.columns[0]]}"
name="${datas.columns[0]}s" value="${data[datas.columns[0]]}" disabled="disabled"/>
<label class="custom-control-label"
for="${datas.columns[0]}_${data[datas.columns[0]]}">${data[datas.columns[0]]}</label>
</div>
</td>
<c:forEach items="${datas.columns}" var="column" begin="1">
<td>${data[column]}</td>
</c:forEach>
<c:if test="${!empty datas.otherTitles}">
<c:import url="${datas.importJspPath}/otherData.jsp">
<c:param name="id" value="${data[datas.columns[0]]}"/>
<c:param name="index" value="${i.index}"/>
</c:import>
</c:if>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
没有设置列数据显示
</c:otherwise>
</c:choose>
</tbody>
</table>

@ -26,7 +26,7 @@
</head>
<body>
<div id="div_demo">
<svg aria-hidden="true" data-prefix="fas" data-icon="spinner" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="svg-inline--fa fa-spinner fa-w-16 fa-spin fa-lg"><path fill="currentColor" d="M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z" class=""></path></svg>
</div>
</body>

@ -63,7 +63,7 @@ public class SpringTest {
@Test
public void test() throws Exception {
ResultActions resultActions = this.mockMvc.perform(MockMvcRequestBuilders.get("/data/table").param("firstResult", "0").param("maxResults", "10").param("typeIds","123").param("typeIds","456"));
ResultActions resultActions = this.mockMvc.perform(MockMvcRequestBuilders.get("/data/table").param("firstResult", "0").param("maxResults", "10").param("cids","49052").param("typeIds","33"));
resultActions.andDo(MockMvcResultHandlers.print()).andReturn();
}
@ -98,5 +98,10 @@ public class SpringTest {
biliService.getHibernateTemplate();
}
@Test
public void test6() throws Exception {
ResultActions resultActions = this.mockMvc.perform(MockMvcRequestBuilders.get("/data/count").param("cids","49052"));
resultActions.andDo(MockMvcResultHandlers.print()).andReturn();
}
}

Loading…
Cancel
Save