From 49cf897589babf8f5b6cd41c7986a7e72c45b354 Mon Sep 17 00:00:00 2001 From: Hai Liang Wang Date: Tue, 11 Dec 2018 15:19:59 +0800 Subject: [PATCH] #171 fix docker container startup error --- contact-center/Dockerfile | 20 +++++++++++++------ .../api/rest/ApiChatbotController.java | 19 +++++++----------- .../chatbot/ChatbotEventHandler.java | 5 ++--- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/contact-center/Dockerfile b/contact-center/Dockerfile index d6662772..800b5d4f 100644 --- a/contact-center/Dockerfile +++ b/contact-center/Dockerfile @@ -1,4 +1,4 @@ -FROM tomcat:8.5.35-slim +FROM chatopera/java:1.0.0 MAINTAINER Hai Liang Wang ARG VCS_REF @@ -20,12 +20,20 @@ ENV LANG C.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL C.UTF-8 +# set ENVs +ENV JAVA_HOME=/opt/java-8-oracle +ENV TOMCAT_HOME=/opt/apache-tomcat +ENV PATH=$PATH:$JAVA_HOME/bin + # create dirs RUN /bin/bash -c "mkdir -p /{data,logs}" -# copy WAR -RUN rm -rf /usr/local/tomcat/webapps/* -COPY ./app/target/contact-center-3.9.0.war.original /usr/local/tomcat/webapps/ROOT.war -COPY ./config/tomcat.context.xml /usr/local/tomcat/conf/context.xml +# build WAR +RUN rm -rf /opt/apache-tomcat/webapps/ROOT* +COPY ./app/target/contact-center-*.war.original /opt/apache-tomcat/webapps/ROOT.war -EXPOSE 8030-8090 9200 9300 \ No newline at end of file +# clean files +RUN rm -rf /root/.m2 + +EXPOSE 8030-8090 9200 9300 +CMD ["/opt/apache-tomcat/bin/catalina.sh", "run"] \ No newline at end of file diff --git a/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiChatbotController.java b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiChatbotController.java index 3c57c4c2..24c27899 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiChatbotController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/app/handler/api/rest/ApiChatbotController.java @@ -16,13 +16,13 @@ package com.chatopera.cc.app.handler.api.rest; import com.chatopera.bot.exception.ChatbotException; -import com.chatopera.cc.app.basic.MainContext; import com.chatopera.cc.app.basic.MainUtils; import com.chatopera.cc.app.handler.Handler; import com.chatopera.cc.app.handler.api.request.RestUtils; import com.chatopera.cc.app.im.util.ChatbotUtils; import com.chatopera.cc.app.model.*; import com.chatopera.cc.app.persistence.repository.*; +import com.chatopera.cc.concurrent.chatbot.ChatbotEventHandler; import com.chatopera.cc.exception.CallOutRecordException; import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.OnlineUserUtils; @@ -185,7 +185,7 @@ public class ApiChatbotController extends Handler { } try { - com.chatopera.bot.sdk.Chatbot bot = new com.chatopera.bot.sdk.Chatbot(c.getClientId(), c.getSecret()); + com.chatopera.bot.sdk.Chatbot bot = new com.chatopera.bot.sdk.Chatbot(c.getClientId(), c.getSecret(), ChatbotEventHandler.getChatbotServiceUrl()); if (bot.exists()) { c.setEnabled(isEnabled); chatbotRes.save(c); @@ -206,6 +206,7 @@ public class ApiChatbotController extends Handler { resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_6); resp.addProperty(RestUtils.RESP_KEY_DATA, "设置不成功,智能问答引擎地址不合法。"); } catch (ChatbotException e) { + resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_FAIL_5); resp.addProperty(RestUtils.RESP_KEY_DATA, "设置不成功,智能问答引擎服务异常。"); } @@ -267,7 +268,7 @@ public class ApiChatbotController extends Handler { } try { - com.chatopera.bot.sdk.Chatbot bot = new com.chatopera.bot.sdk.Chatbot(c.getClientId(), c.getSecret()); + com.chatopera.bot.sdk.Chatbot bot = new com.chatopera.bot.sdk.Chatbot(c.getClientId(), c.getSecret(), ChatbotEventHandler.getChatbotServiceUrl()); if (bot.exists()) { resp.addProperty(RestUtils.RESP_KEY_RC, RestUtils.RESP_RC_SUCC); resp.addProperty(RestUtils.RESP_KEY_DATA, "更新成功。"); @@ -484,7 +485,8 @@ public class ApiChatbotController extends Handler { } try { - com.chatopera.bot.sdk.Chatbot bot = new com.chatopera.bot.sdk.Chatbot(clientId, secret, getBotBaseUrl()); + logger.info("create bot with url {}", ChatbotEventHandler.getChatbotServiceUrl()); + com.chatopera.bot.sdk.Chatbot bot = new com.chatopera.bot.sdk.Chatbot(clientId, secret, ChatbotEventHandler.getChatbotServiceUrl()); if (bot.exists()) { // 该机器人存在,clientId 和 Secret配对成功 // 创建成功 @@ -493,7 +495,7 @@ public class ApiChatbotController extends Handler { c.setId(MainUtils.getUUID()); c.setClientId(clientId); c.setSecret(secret); - c.setBaseUrl(getBotBaseUrl()); + c.setBaseUrl(ChatbotEventHandler.getChatbotServiceUrl()); c.setDescription(botDetails.getJSONObject("data").getString("description")); c.setFallback(botDetails.getJSONObject("data").getString("fallback")); c.setPrimaryLanguage(botDetails.getJSONObject("data").getString("primaryLanguage")); @@ -547,11 +549,4 @@ public class ApiChatbotController extends Handler { return resp; } } - - private String getBotBaseUrl(){ - if(this.botBaseUrl == null) - this.botBaseUrl = MainContext.getContext().getEnvironment().getProperty("chatopera.bot.url"); - return this.botBaseUrl; - } - } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/concurrent/chatbot/ChatbotEventHandler.java b/contact-center/app/src/main/java/com/chatopera/cc/concurrent/chatbot/ChatbotEventHandler.java index bea6d8d5..987d1f6d 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/concurrent/chatbot/ChatbotEventHandler.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/concurrent/chatbot/ChatbotEventHandler.java @@ -40,7 +40,7 @@ public class ChatbotEventHandler implements EventHandler { private ChatbotRepository chatbotRes; private AgentUserRepository agentUserRes; - private String botServiceUrl; + private static String botServiceUrl; /** * 根据聊天机器人返回数据更新agentUser @@ -140,11 +140,10 @@ public class ChatbotEventHandler implements EventHandler { } - private String getChatbotServiceUrl() { + public static String getChatbotServiceUrl() { if (botServiceUrl == null) { botServiceUrl = MainContext.getContext().getEnvironment().getProperty("chatopera.bot.url"); } return botServiceUrl; } - }