/**
* Tencent is pleased to support the open source community by making MSEC available.
*
* Copyright (C) 2016 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the GNU General Public License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. You may
* obtain a copy of the License at
*
* https://opensource.org/licenses/GPL-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package beans.service;
import beans.dbaccess.SecondLevelServiceConfigTag;
import ngse.org.JsonRPCHandler;
import ngse.org.JsonRPCResponseBase;
import ngse.org.ServletConfig;
import org.apache.log4j.Logger;
import org.codehaus.jackson.map.ObjectMapper;
import org.json.JSONObject;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.nio.charset.Charset;
/**
* Created by Administrator on 2016/1/28.
* 获取配置文件某个版本的内容
*/
@WebServlet(name = "DownloadConfigFileContent")
public class DownloadConfigFileContent extends JsonRPCHandler {
public JsonRPCResponseBase exec(SecondLevelServiceConfigTag request)
{
Logger logger = Logger.getLogger(DownloadConfigFileContent.class);
try {
getHttpResponse().setCharacterEncoding("UTF-8");
getHttpResponse().setContentType("application/text; charset=utf-8");
PrintWriter out = getHttpResponse().getWriter();
String first_level_service_name = request.getFirst_level_service_name();
String second_level_service_name =request.getSecond_level_service_name();
String tag_name = request.getTag_name();
if (first_level_service_name == null || first_level_service_name.length() < 1 ||
second_level_service_name == null || second_level_service_name.length() < 1 ||
tag_name == null || tag_name.length() < 1) {
out.printf("server:wrong parameters");
return null;
}
String filename = SecondLevelServiceConfigTag.getConfigFileName(first_level_service_name, second_level_service_name, tag_name);
logger.error("download " + filename);
File file = new File(filename);
if (file.exists() && file.isFile()) {
FileInputStream in = new FileInputStream(file);
//DataInputStream dis = new DataInputStream(in);
byte[] buf = new byte[1024];
while (true) {
int len = in.read(buf);
if (len <= 0) {
in.close();
break;
}
out.write(new String(buf, 0, len, Charset.forName("utf8")));
}
} else {
out.println("file not exist:" + filename);
return null;
}
}
catch (Exception e)
{
e.printStackTrace();
return null;
}
return null;
}
/*
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Logger logger = Logger.getLogger(DownloadConfigFileContent.class);
resp.setCharacterEncoding("UTF-8");
resp.setContentType("application/text; charset=utf-8");
PrintWriter out = resp.getWriter();
String first_level_service_name = req.getParameter("first_level_service_name");
String second_level_service_name = req.getParameter("second_level_service_name");
String tag_name = req.getParameter("tag_name");
if (first_level_service_name == null || first_level_service_name.length()< 1||
second_level_service_name == null ||second_level_service_name.length() < 1 ||
tag_name == null ||tag_name.length() < 1){
out.printf("server:wrong parameters");
return;
}
String filename = SecondLevelServiceConfigTag.getConfigFileName(first_level_service_name, second_level_service_name, tag_name);
logger.error("download "+filename);
File file = new File(filename);
if(file.exists() && file.isFile()) {
try {
FileInputStream in = new FileInputStream(file);
//DataInputStream dis = new DataInputStream(in);
byte[] buf = new byte[1024];
while (true) {
int len = in.read(buf);
if (len <= 0)
{
in.close();
break;
}
out.write(new String(buf, 0, len, Charset.forName("utf8")));
}
}
catch (IOException e)
{
out.println("server:"+e.toString());
return;
}
}
else
{
out.println("file not exist:"+filename);
return;
}
}
*/
}