package org.fastcatsearch.http.action.management.collections; import java.io.PrintWriter; import java.io.StringWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import org.fastcatsearch.http.ActionAuthority; import org.fastcatsearch.http.ActionAuthorityLevel; import org.fastcatsearch.http.ActionMapping; import org.fastcatsearch.http.action.ActionRequest; import org.fastcatsearch.http.action.ActionResponse; import org.fastcatsearch.http.action.AuthAction; import org.fastcatsearch.util.DynamicClassLoader; import org.fastcatsearch.util.ResponseWriter; /** * jdbc 소스가 연결이 올바른지 확인. * * */ @ActionMapping(value = "/management/collections/test-jdbc-source", authority = ActionAuthority.Collections, authorityLevel = ActionAuthorityLevel.WRITABLE) public class TestJdbcSourceConnectionAction extends AuthAction { @Override public void doAuthAction(ActionRequest request, ActionResponse response) throws Exception { boolean isSuccess = false; String message = ""; try { String driver = request.getParameter("driver"); String url = request.getParameter("url"); String user = request.getParameter("user"); String password = request.getParameter("password"); DynamicClassLoader.loadClass(driver); try { Connection connection = DriverManager.getConnection(url, user, password); isSuccess = connection != null; }catch(SQLException e){ isSuccess = false; // StringWriter sw = new StringWriter(); // PrintWriter w = new PrintWriter(sw); // e.printStackTrace(w); // message = sw.toString(); message = e.getMessage(); } } catch (Exception e) { logger.error("",e); isSuccess = false; } ResponseWriter responseWriter = getDefaultResponseWriter(response.getWriter()); responseWriter.object(); responseWriter.key("success").value(isSuccess); responseWriter.key("message").value(message); responseWriter.endObject(); responseWriter.done(); } }