提交 acc42076 编写于 作者: R Ray

0409

上级 e46148ba
......@@ -78,6 +78,7 @@ public class Config {
public static final String PATH_CONFIG_MESSAGEMQ = "config/messageMq.json";
public static final String PATH_CONFIG_MESSAGEMAIL = "config/messageMail.json";
public static final String PATH_CONFIG_MESSAGEAPI = "config/messageApi.json";
public static final String PATH_CONFIG_MESSAGEJDBC = "config/messageJdbc.json";
public static final String PATH_CONFIG_SSLKEYSTORE = "config/keystore";
public static final String PATH_CONFIG_SSLKEYSTORESAMPLE = "config/sample/keystore";
public static final String PATH_CONFIG_STARTIMAGE = "config/startImage.png";
......@@ -986,6 +987,19 @@ public class Config {
return instance().messageApi;
}
private MessageJdbc messageJdbc;
public static synchronized MessageJdbc messageJdbc() throws Exception {
if (null == instance().messageJdbc) {
MessageJdbc obj = BaseTools.readConfigObject(PATH_CONFIG_MESSAGEJDBC, MessageJdbc.class);
if (null == obj) {
obj = MessageJdbc.defaultInstance();
}
instance().messageJdbc = obj;
}
return instance().messageJdbc;
}
private String messageSendRuleScript;
public static synchronized String messageSendRuleScript() throws Exception {
......
package com.x.base.core.project.config;
import java.util.LinkedHashMap;
import org.apache.commons.lang3.StringUtils;
import com.x.base.core.project.annotation.FieldDescribe;
public class MessageJdbc extends LinkedHashMap<String, MessageJdbc.Item> {
private static final long serialVersionUID = 2536141863287117519L;
public static MessageJdbc defaultInstance() {
MessageJdbc messageMq = new MessageJdbc();
messageMq.put("o2oa", new Item());
return messageMq;
}
public static class Item {
public Item() {
}
public static final String TYPE_KAFKA = "kafka";
public static final String TYPE_ACTIVEMQ = "activeMQ";
public static final String DEFAULT_TYPE = TYPE_KAFKA;
public static final String DEFAULT_KAFKABOOTSTRAPSERVERS = "";
public static final String DEFAULT_KAFKATOPIC = "";
public static final String DEFAULT_KAFKAACKS = "";
public static final Integer DEFAULT_KAFKARETRIES = 3;
public static final String DEFAULT_KAFKABATCHSIZE = "";
public static final Integer DEFAULT_KAFKALINGERMS = 5000;
public static final String DEFAULT_KAFKABUFFERMEMORY = "";
public static final String DEFAULT_ACTIVEMQUSERNAME = "";
public static final String DEFAULT_ACTIVEMQPASSWORD = "";
public static final String DEFAULT_ACTIVEMQURL = "";
public static final String DEFAULT_ACTIVEMQQUEUENAME = "";
@FieldDescribe("类型,kafka或者activeMQ")
private String driverClass;
@FieldDescribe("服务器地址")
private String url;
@FieldDescribe("主题")
private String username;
@FieldDescribe("用户名")
private String password;
@FieldDescribe("密码")
private String catalog;
@FieldDescribe("服务器地址")
private String schema;
@FieldDescribe("消息队列名")
private String table;
public String getDriverClass() {
return driverClass;
}
public void setDriverClass(String driverClass) {
this.driverClass = driverClass;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getCatalog() {
return catalog;
}
public void setCatalog(String catalog) {
this.catalog = catalog;
}
public String getSchema() {
return schema;
}
public void setSchema(String schema) {
this.schema = schema;
}
public String getTable() {
return table;
}
public void setTable(String table) {
this.table = table;
}
}
}
......@@ -152,6 +152,8 @@ public class MessageConnector {
public static final String CONSUME_MAIL = "mail";
// 内部调用
public static final String CONSUME_API = "api";
// jdbc写入
public static final String CONSUME_JDBC = "jdbc";
private static Context context;
......
......@@ -20,23 +20,19 @@ public abstract class AbstractFactory {
protected Ehcache cache;
public AbstractFactory(Business business) throws Exception {
try {
if (null == business) {
throw new Exception("business can not be null.");
}
this.business = business;
} catch (Exception e) {
throw new Exception("can not instantiating factory.");
protected AbstractFactory(Business business) {
if (null == business) {
throw new IllegalArgumentException("business can not be null.");
}
this.business = business;
}
public EntityManagerContainer entityManagerContainer() throws Exception {
public EntityManagerContainer entityManagerContainer() {
return this.business.entityManagerContainer();
}
@SuppressWarnings("unchecked")
protected <T extends JpaObject> T pick(String flag, Class<T> clz, String... attributes) throws Exception {
protected <T extends JpaObject> T pick(String flag, Class<T> clz) throws Exception {
if (StringUtils.isEmpty(flag)) {
return null;
}
......
......@@ -42,16 +42,19 @@ public class ApiConsumeQueue extends AbstractQueue<Message> {
private static Gson gson = XGsonBuilder.instance();
protected void execute(Message message) throws Exception {
LOGGER.debug("execute:{}.", message::getTitle);
if (null != message && StringUtils.isNotEmpty(message.getItem())) {
update(message);
}
for (String id : listOverStay()) {
Optional<Message> optional = find(id);
if (optional.isPresent()) {
message = optional.get();
if (StringUtils.isNotEmpty(message.getItem())) {
update(message);
List<String> ids = listOverStay();
if (!ids.isEmpty()) {
LOGGER.info("滞留 api 消息数量:{}.", ids.size());
for (String id : ids) {
Optional<Message> optional = find(id);
if (optional.isPresent()) {
message = optional.get();
if (StringUtils.isNotEmpty(message.getItem())) {
update(message);
}
}
}
}
......
package com.x.message.assemble.communicate;
import com.x.base.core.project.exception.PromptException;
class ExceptionRestful extends PromptException {
private static final long serialVersionUID = 6235890108470383271L;
ExceptionRestful(String title, String person, String url) {
super("restful call failed, title:{}, person:{}, url:{}.", title, person, url);
}
}
package com.x.message.assemble.communicate;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Optional;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.config.MessageJdbc;
import com.x.base.core.project.gson.XGsonBuilder;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.queue.AbstractQueue;
import com.x.message.core.entity.Message;
public class JdbcConsumeQueue extends AbstractQueue<Message> {
private static final Logger LOGGER = LoggerFactory.getLogger(JdbcConsumeQueue.class);
private static final Gson gson = XGsonBuilder.instance();
protected void execute(Message message) throws Exception {
if (null != message && StringUtils.isNotEmpty(message.getItem())) {
update(message);
}
List<String> ids = listOverStay();
if (!ids.isEmpty()) {
LOGGER.info("滞留 jdbc 消息数量:{}.", ids.size());
for (String id : ids) {
Optional<Message> optional = find(id);
if (optional.isPresent()) {
message = optional.get();
if (StringUtils.isNotEmpty(message.getItem())) {
update(message);
}
}
}
}
}
private Optional<Message> find(String id) {
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
return Optional.of(emc.find(id, Message.class));
} catch (Exception e) {
LOGGER.error(e);
}
return Optional.empty();
}
private void update(Message message) {
try {
MessageJdbc.Item item = Config.messageJdbc().get(message.getItem());
String catalog = "";
String schema = "";
String table = "";
Class.forName("");
try (Connection connection = DriverManager.getConnection(item.getUrl(), item.getUsername(),
item.getPassword()); Statement statement = connection.createStatement()) {
List<String> columns = this.columnNames(connection, item);
Map<String, JsonElement> map = values(columns, null);
List<String> params = new ArrayList<>();
for (int i = 0; i < map.keySet().size(); i++) {
params.add("?");
}
String sql = "INSERT INTO XXXXX (" + StringUtils.join(map.keySet(), ",") + ") VALUES ("
+ StringUtils.join(params, ",") + ")";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
int idx = 1;
for (Entry<String, JsonElement> en : map.entrySet()) {
preparedStatement.setObject(idx++, getObject(en.getValue()));
}
preparedStatement.executeUpdate();
}
} catch (Exception e) {
failure(message.getId(), e);
LOGGER.error(e);
}
}
private Object getObject(JsonElement jsonElement) {
if (null == jsonElement || jsonElement.isJsonNull()) {
return null;
}
if (jsonElement.isJsonPrimitive()) {
JsonPrimitive jsonPrimitive = jsonElement.getAsJsonPrimitive();
if (jsonPrimitive.isBoolean()) {
return jsonPrimitive.getAsBoolean();
} else if (jsonPrimitive.isString()) {
return jsonPrimitive.getAsString();
} else if (jsonPrimitive.isNumber()) {
return jsonPrimitive.getAsNumber();
}
}
return null;
}
private Map<String, JsonElement> values(List<String> columns, JsonObject jsonObject) {
Map<String, JsonElement> map = new LinkedHashMap<>();
jsonObject.entrySet().forEach(en -> {
int idx = ListUtils.indexOf(columns, o -> {
return StringUtils.equalsIgnoreCase(en.getKey(), o);
});
if (idx > 0) {
map.put(columns.get(idx), en.getValue());
}
});
return map;
}
private List<String> columnNames(Connection connection, MessageJdbc.Item item) throws SQLException {
DatabaseMetaData databaseMetaData = connection.getMetaData();
String catalog = "";
String schema = "";
String table = "";
List<String> list = new ArrayList<>();
try (ResultSet resultSet = databaseMetaData.getColumns(catalog, schema, table, "%")) {
while (resultSet.next()) {
list.add(resultSet.getString("COLUMN_NAME"));
}
}
return list;
}
}
......@@ -38,16 +38,19 @@ public class MailConsumeQueue extends AbstractQueue<Message> {
private static final Logger LOGGER = LoggerFactory.getLogger(MailConsumeQueue.class);
protected void execute(Message message) throws Exception {
LOGGER.debug("execute:{}, to person:{}.", message.getTitle(), message.getPerson());
if (null != message && StringUtils.isNotEmpty(message.getItem())) {
update(message);
}
for (String id : listOverStay()) {
Optional<Message> optional = find(id);
if (optional.isPresent()) {
message = optional.get();
if (StringUtils.isNotEmpty(message.getItem())) {
update(message);
List<String> ids = listOverStay();
if (!ids.isEmpty()) {
LOGGER.info("滞留 mail 消息数量:{}.", ids.size());
for (String id : ids) {
Optional<Message> optional = find(id);
if (optional.isPresent()) {
message = optional.get();
if (StringUtils.isNotEmpty(message.getItem())) {
update(message);
}
}
}
}
......
......@@ -41,9 +41,9 @@ import com.x.base.core.project.tools.ListTools;
import com.x.message.core.entity.Message;
import com.x.message.core.entity.Message_;
public class MQConsumeQueue extends AbstractQueue<Message> {
public class MqConsumeQueue extends AbstractQueue<Message> {
private static final Logger LOGGER = LoggerFactory.getLogger(MQConsumeQueue.class);
private static final Logger LOGGER = LoggerFactory.getLogger(MqConsumeQueue.class);
private static final Gson gson = XGsonBuilder.instance();
......@@ -51,12 +51,16 @@ public class MQConsumeQueue extends AbstractQueue<Message> {
if (null != message && StringUtils.isNotEmpty(message.getItem())) {
update(message);
}
for (String id : listOverStay()) {
Optional<Message> optional = find(id);
if (optional.isPresent()) {
message = optional.get();
if (StringUtils.isNotEmpty(message.getItem())) {
update(message);
List<String> ids = listOverStay();
if (!ids.isEmpty()) {
LOGGER.info("滞留 api 消息数量:{}.", ids.size());
for (String id : ids) {
Optional<Message> optional = find(id);
if (optional.isPresent()) {
message = optional.get();
if (StringUtils.isNotEmpty(message.getItem())) {
update(message);
}
}
}
}
......@@ -115,7 +119,7 @@ public class MQConsumeQueue extends AbstractQueue<Message> {
} else {
connectionFactory = new ActiveMQConnectionFactory(item.getActiveMQUrl());
}
connectionFactory.setTrustedPackages(ListTools.toList(MQConsumeQueue.class.getPackage().getName()));
connectionFactory.setTrustedPackages(ListTools.toList(MqConsumeQueue.class.getPackage().getName()));
try (Connection connection = connectionFactory.createConnection()) {
connection.start();
try (Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE)) {
......
......@@ -24,6 +24,7 @@ import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.entity.JpaObject_;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.config.MessageRestful;
import com.x.base.core.project.connection.HttpConnectionResponse;
import com.x.base.core.project.gson.XGsonBuilder;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
......@@ -47,12 +48,16 @@ public class RestfulConsumeQueue extends AbstractQueue<Message> {
if (null != message && StringUtils.isNotEmpty(message.getItem())) {
update(message);
}
for (String id : listOverStay()) {
Optional<Message> optional = find(id);
if (optional.isPresent()) {
message = optional.get();
if (StringUtils.isNotEmpty(message.getItem())) {
update(message);
List<String> ids = listOverStay();
if (!ids.isEmpty()) {
LOGGER.info("滞留 restful 消息数量:{}.", ids.size());
for (String id : ids) {
Optional<Message> optional = find(id);
if (optional.isPresent()) {
message = optional.get();
if (StringUtils.isNotEmpty(message.getItem())) {
update(message);
}
}
}
}
......@@ -72,12 +77,15 @@ public class RestfulConsumeQueue extends AbstractQueue<Message> {
MessageRestful.Item item = Config.messageRestful().get(message.getItem());
if (null != item) {
String url = url(message, item);
client.restful(item.getMethod(), url, null, message.getBody(), 5000, 5000);
HttpConnectionResponse response = client.restful(item.getMethod(), url, null, message.getBody(), 5000,
5000);
if (null == response) {
throw new ExceptionRestful(message.getTitle(), message.getPerson(), url);
}
success(message.getId());
} else {
throw new ExceptionMessageRestfulItem(message.getItem());
}
} catch (Exception e) {
failure(message.getId(), e);
LOGGER.error(e);
......
......@@ -33,7 +33,7 @@ public class ThisApplication {
public static final PmsInnerConsumeQueue pmsInnerConsumeQueue = new PmsInnerConsumeQueue();
public static final MQConsumeQueue mqConsumeQueue = new MQConsumeQueue();
public static final MqConsumeQueue mqConsumeQueue = new MqConsumeQueue();
public static final MPWeixinConsumeQueue mpWeixinConsumeQueue = new MPWeixinConsumeQueue();
......
......@@ -520,14 +520,10 @@ class ActionCreate extends BaseAction {
}
private List<Message> v3Assemble(Wi wi, Instant instant, List<Consumer> consumers) {
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
System.out.println(consumers);
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
List<Message> messages = new ArrayList<>();
if (!consumers.isEmpty()) {
for (Consumer consumer : consumers) {
if (BooleanUtils.isTrue(consumer.getEnable())) {
if (BooleanUtils.isTrue(consumer.getEnable()) && v3Filter(wi, consumer)) {
Message message = this.v3AssembleMessage(wi, consumer, instant);
if (message != null) {
messages.add(message);
......@@ -570,20 +566,9 @@ class ActionCreate extends BaseAction {
case MessageConnector.CONSUME_CALENDAR:
message = this.v3CalendarMessage(wi, consumer);
break;
case MessageConnector.CONSUME_RESTFUL:
message = this.v3Message(wi, consumer);
break;
case MessageConnector.CONSUME_MQ:
message = this.v3Message(wi, consumer);
break;
case MessageConnector.CONSUME_API:
message = this.v3Message(wi, consumer);
break;
case MessageConnector.CONSUME_MAIL:
message = this.v3Message(wi, consumer);
break;
// restful, mq, api, mail, custom_消息没有其他判断条件
default:
message = this.v3DefaultMessage(wi, consumer);
message = this.v3Message(wi, consumer);
break;
}
if (null != message) {
......@@ -607,7 +592,7 @@ class ActionCreate extends BaseAction {
private Message v3WsMessage(Wi wi, Consumer consumer) {
Message message = null;
try {
if (BooleanUtils.isTrue(Config.communicate().wsEnable()) && BooleanUtils.isTrue(v3Filter(wi, consumer))) {
if (BooleanUtils.isTrue(Config.communicate().wsEnable())) {
message = v3Message(wi, consumer);
}
} catch (Exception e) {
......@@ -619,7 +604,7 @@ class ActionCreate extends BaseAction {
private Message v3PmsMessage(Wi wi, Consumer consumer) {
Message message = null;
try {
if (BooleanUtils.isTrue(Config.communicate().pmsEnable()) && BooleanUtils.isTrue(v3Filter(wi, consumer))) {
if (BooleanUtils.isTrue(Config.communicate().pmsEnable())) {
message = v3Message(wi, consumer);
}
} catch (Exception e) {
......@@ -631,7 +616,7 @@ class ActionCreate extends BaseAction {
private Message v3PmsInnerMessage(Wi wi, Consumer consumer) {
Message message = null;
try {
if (BooleanUtils.isTrue(Config.pushConfig().getEnable()) && BooleanUtils.isTrue(v3Filter(wi, consumer))) {
if (BooleanUtils.isTrue(Config.pushConfig().getEnable())) {
message = v3Message(wi, consumer);
}
} catch (Exception e) {
......@@ -644,8 +629,7 @@ class ActionCreate extends BaseAction {
Message message = null;
try {
if (BooleanUtils.isTrue(Config.dingding().getEnable())
&& BooleanUtils.isTrue(Config.dingding().getMessageEnable())
&& BooleanUtils.isTrue(v3Filter(wi, consumer))) {
&& BooleanUtils.isTrue(Config.dingding().getMessageEnable())) {
message = v3Message(wi, consumer);
}
} catch (Exception e) {
......@@ -657,8 +641,7 @@ class ActionCreate extends BaseAction {
private Message v3ZhengwudingdingMessage(Wi wi, Consumer consumer) {
Message message = null;
try {
if (Config.zhengwuDingding().getEnable() && Config.zhengwuDingding().getMessageEnable()
&& BooleanUtils.isTrue(v3Filter(wi, consumer))) {
if (Config.zhengwuDingding().getEnable() && Config.zhengwuDingding().getMessageEnable()) {
message = v3Message(wi, consumer);
}
} catch (Exception e) {
......@@ -685,8 +668,7 @@ class ActionCreate extends BaseAction {
Message message = null;
try {
if (BooleanUtils.isTrue(Config.weLink().getEnable())
&& BooleanUtils.isTrue(Config.weLink().getMessageEnable())
&& BooleanUtils.isTrue(v3Filter(wi, consumer))) {
&& BooleanUtils.isTrue(Config.weLink().getMessageEnable())) {
message = v3Message(wi, consumer);
}
} catch (Exception e) {
......@@ -699,8 +681,7 @@ class ActionCreate extends BaseAction {
Message message = null;
try {
if (BooleanUtils.isTrue(Config.mPweixin().getEnable())
&& BooleanUtils.isTrue(Config.mPweixin().getMessageEnable())
&& BooleanUtils.isTrue(v3Filter(wi, consumer))) {
&& BooleanUtils.isTrue(Config.mPweixin().getMessageEnable())) {
message = v3Message(wi, consumer);
}
} catch (Exception e) {
......@@ -712,8 +693,7 @@ class ActionCreate extends BaseAction {
private Message v3CalendarMessage(Wi wi, Consumer consumer) {
Message message = null;
try {
if (BooleanUtils.isTrue(Config.communicate().calendarEnable())
&& BooleanUtils.isTrue(v3Filter(wi, consumer))) {
if (BooleanUtils.isTrue(Config.communicate().calendarEnable())) {
message = v3Message(wi, consumer);
}
} catch (Exception e) {
......@@ -722,10 +702,6 @@ class ActionCreate extends BaseAction {
return message;
}
private Message v3DefaultMessage(Wi wi, Consumer consumer) {
return v3Message(wi, consumer);
}
private boolean v3Filter(Wi wi, Consumer consumer) {
try {
if (StringUtils.isNotBlank(consumer.getFilter())) {
......@@ -743,9 +719,12 @@ class ActionCreate extends BaseAction {
if (compiledScript != null) {
ScriptContext scriptContext = ScriptingFactory.scriptContextEvalInitialServiceScript();
Bindings bindings = scriptContext.getBindings(ScriptContext.ENGINE_SCOPE);
bindings.put(ScriptingFactory.BINDING_NAME_SERVICE_MESSAGE, wi.getBody());
bindings.put(ScriptingFactory.BINDING_NAME_SERVICE_MESSAGE, wi.getBody().toString());
Boolean filter = JsonScriptingExecutor.evalBoolean(compiledScript, scriptContext);
return BooleanUtils.isTrue(filter);
boolean value = BooleanUtils.isTrue(filter);
LOGGER.debug("message type:{}, title:{}, person:{}, filter:{}, result:{}.", consumer::getType,
wi::getTitle, wi::getPerson, consumer::getFilter, () -> value);
return value;
}
}
} catch (Exception e) {
......@@ -772,7 +751,7 @@ class ActionCreate extends BaseAction {
if (compiledScript != null) {
ScriptContext scriptContext = ScriptingFactory.scriptContextEvalInitialServiceScript();
Bindings bindings = scriptContext.getBindings(ScriptContext.ENGINE_SCOPE);
bindings.put(ScriptingFactory.BINDING_NAME_SERVICE_MESSAGE, wi.getBody());
bindings.put(ScriptingFactory.BINDING_NAME_SERVICE_MESSAGE, wi.getBody().toString());
jsonElement = JsonScriptingExecutor.jsonElement(compiledScript, scriptContext);
}
}
......
......@@ -9,13 +9,13 @@ import com.x.query.service.processing.jaxrs.design.DesignAction;
import com.x.query.service.processing.jaxrs.neural.NeuralAction;
import com.x.query.service.processing.jaxrs.segment.SegmentAction;
import com.x.query.service.processing.jaxrs.table.TableAction;
import com.x.query.service.processing.jaxrs.test.TestAction;
import com.x.query.service.processing.jaxrs.touch.TouchAction;
@ApplicationPath("jaxrs")
public class ActionApplication extends AbstractActionApplication {
public Set<Class<?>> getClasses() {
classes.add(TestAction.class);
classes.add(TouchAction.class);
classes.add(NeuralAction.class);
classes.add(SegmentAction.class);
classes.add(DesignAction.class);
......
......@@ -4,7 +4,7 @@ import javax.servlet.annotation.WebFilter;
import com.x.base.core.project.jaxrs.CipherManagerUserJaxrsFilter;
@WebFilter(urlPatterns = "/jaxrs/test/*", asyncSupported = true)
public class TestJaxrsFilter extends CipherManagerUserJaxrsFilter {
@WebFilter(urlPatterns = "/jaxrs/touch/*", asyncSupported = true)
public class TouchJaxrsFilter extends CipherManagerUserJaxrsFilter {
}
package com.x.query.service.processing.jaxrs.test;
import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.jaxrs.WrapString;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.tools.ExtractTextTools;
class ActionExtract extends BaseAction {
private static Logger logger = LoggerFactory.getLogger(ActionExtract.class);
ActionResult<Wo> execute(EffectivePerson effectivePerson, byte[] bytes, FormDataContentDisposition disposition)
throws Exception {
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
ActionResult<Wo> result = new ActionResult<>();
Wo wo = new Wo();
wo.setValue(ExtractTextTools.extract(bytes, this.fileName(disposition), Config.query().getExtractOffice(),
Config.query().getExtractPdf(), Config.query().getExtractText(), Config.query().getExtractImage()));
result.setData(wo);
return result;
}
}
public static class Wo extends WrapString {
}
}
\ No newline at end of file
package com.x.query.service.processing.jaxrs.test;
import javax.persistence.EntityManager;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.jaxrs.WrapBoolean;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.utils.time.ClockStamp;
import com.x.processplatform.core.entity.content.Work;
import com.x.processplatform.core.entity.content.Work_;
class ActionGroup1 extends BaseAction {
private static Logger logger = LoggerFactory.getLogger(ActionGroup1.class);
ActionResult<Wo> execute(EffectivePerson effectivePerson) throws Exception {
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
ClockStamp.INIT("创建测试distinct代码.", "");
return new ActionResult<>();
}
}
private void id(EntityManagerContainer emc) throws Exception {
ClockStamp.STAMP("执行work的id distinct{}.", "开始");
EntityManager em = emc.get(Work.class);
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<String> cq = cb.createQuery(String.class);
Root<Work> root = cq.from(Work.class);
cq.select(root.get(Work_.id)).distinct(true);
em.createQuery(cq).getResultList();
ClockStamp.STAMP("执行work的id distinct{}.", "结束");
}
public static class Wo extends WrapBoolean {
}
}
\ No newline at end of file
package com.x.query.service.processing.jaxrs.test;
import javax.persistence.EntityManager;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.jaxrs.WrapBoolean;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.utils.time.ClockStamp;
import com.x.processplatform.core.entity.content.Work;
import com.x.processplatform.core.entity.content.Work_;
class ActionGroup2 extends BaseAction {
private static Logger logger = LoggerFactory.getLogger(ActionGroup2.class);
ActionResult<Wo> execute(EffectivePerson effectivePerson) throws Exception {
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
ClockStamp.INIT("创建测试distinct代码.", "");
job(emc);
return new ActionResult<>();
}
}
private void job(EntityManagerContainer emc) throws Exception {
ClockStamp.STAMP("执行work的job distinct{}.", "开始");
EntityManager em = emc.get(Work.class);
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<String> cq = cb.createQuery(String.class);
Root<Work> root = cq.from(Work.class);
cq.select(root.get(Work_.id)).distinct(true);
em.createQuery(cq).getResultList();
ClockStamp.STAMP("执行work的job distinct{}.", "结束");
}
public static class Wo extends WrapBoolean {
}
}
\ No newline at end of file
package com.x.query.service.processing.jaxrs.touch;
import com.google.gson.JsonElement;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.jaxrs.WrapBoolean;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
class ActionTest extends BaseAction {
private static Logger logger = LoggerFactory.getLogger(ActionTest.class);
ActionResult<Wo> execute(EffectivePerson effectivePerson, JsonElement jsonElement) throws Exception {
ActionResult<Wo> result = new ActionResult<>();
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
System.out.println(jsonElement);
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
Wo wo = new Wo();
result.setData(wo);
return result;
}
public static class Wo extends WrapBoolean {
}
}
\ No newline at end of file
package com.x.query.service.processing.jaxrs.test;
package com.x.query.service.processing.jaxrs.touch;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.jaxrs.StandardJaxrsAction;
......
package com.x.query.service.processing.jaxrs.test;
package com.x.query.service.processing.jaxrs.touch;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
......@@ -11,9 +11,7 @@ import javax.ws.rs.container.Suspended;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
import org.glassfish.jersey.media.multipart.FormDataParam;
import com.google.gson.JsonElement;
import com.x.base.core.project.annotation.JaxrsDescribe;
import com.x.base.core.project.annotation.JaxrsMethodDescribe;
import com.x.base.core.project.http.ActionResult;
......@@ -24,11 +22,11 @@ import com.x.base.core.project.jaxrs.StandardJaxrsAction;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
@Path("test")
@JaxrsDescribe("测试")
public class TestAction extends StandardJaxrsAction {
@Path("touch")
@JaxrsDescribe("触发任务")
public class TouchAction extends StandardJaxrsAction {
private static Logger logger = LoggerFactory.getLogger(TestAction.class);
private static final Logger LOGGER = LoggerFactory.getLogger(TouchAction.class);
@JaxrsMethodDescribe(value = "执行crawlCms.", action = ActionCrawlCms.class)
@GET
......@@ -41,7 +39,7 @@ public class TestAction extends StandardJaxrsAction {
try {
result = new ActionCrawlCms().execute(effectivePerson);
} catch (Exception e) {
logger.error(e, effectivePerson, request, null);
LOGGER.error(e, effectivePerson, request, null);
result.error(e);
}
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
......@@ -58,7 +56,7 @@ public class TestAction extends StandardJaxrsAction {
try {
result = new ActionCrawlWork().execute(effectivePerson);
} catch (Exception e) {
logger.error(e, effectivePerson, request, null);
LOGGER.error(e, effectivePerson, request, null);
result.error(e);
}
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
......@@ -75,60 +73,25 @@ public class TestAction extends StandardJaxrsAction {
try {
result = new ActionCrawlWorkCompleted().execute(effectivePerson);
} catch (Exception e) {
logger.error(e, effectivePerson, request, null);
result.error(e);
}
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
}
@JaxrsMethodDescribe(value = "执行group.", action = ActionGroup2.class)
@GET
@Path("group1")
@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
@Consumes(MediaType.APPLICATION_JSON)
public void group1(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request) {
ActionResult<ActionGroup1.Wo> result = new ActionResult<>();
EffectivePerson effectivePerson = this.effectivePerson(request);
try {
result = new ActionGroup1().execute(effectivePerson);
} catch (Exception e) {
logger.error(e, effectivePerson, request, null);
LOGGER.error(e, effectivePerson, request, null);
result.error(e);
}
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
}
@JaxrsMethodDescribe(value = "执行group.", action = ActionGroup2.class)
@GET
@Path("group2")
@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
@Consumes(MediaType.APPLICATION_JSON)
public void group2(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request) {
ActionResult<ActionGroup2.Wo> result = new ActionResult<>();
EffectivePerson effectivePerson = this.effectivePerson(request);
try {
result = new ActionGroup2().execute(effectivePerson);
} catch (Exception e) {
logger.error(e, effectivePerson, request, null);
result.error(e);
}
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
}
@JaxrsMethodDescribe(value = "文字转换.", action = ActionExtract.class)
@JaxrsMethodDescribe(value = "文字转换.", action = ActionTest.class)
@POST
@Path("extract")
@Path("test")
@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Consumes(MediaType.APPLICATION_JSON)
public void extract(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
@FormDataParam(FILE_FIELD) final byte[] bytes,
@FormDataParam(FILE_FIELD) final FormDataContentDisposition disposition) {
ActionResult<ActionExtract.Wo> result = new ActionResult<>();
JsonElement jsonElement) {
ActionResult<ActionTest.Wo> result = new ActionResult<>();
EffectivePerson effectivePerson = this.effectivePerson(request);
try {
result = new ActionExtract().execute(effectivePerson, bytes, disposition);
result = new ActionTest().execute(effectivePerson, jsonElement);
} catch (Exception e) {
logger.error(e, effectivePerson, request, null);
LOGGER.error(e, effectivePerson, request, null);
result.error(e);
}
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册