[英]connect tomcat and mysql in docker container with jdbc driver
我正在學習docker並嘗試將使用tomcat和mysql的Java Web應用程序放入容器。 但是我遇到了一些問題,沒有辦法讓我正常工作。
錯誤信息
我的建築
tomcat文件夾-docker文件
FROM tomcat:latest
RUN mkdir -p /usr/local/tomcat/webapps/test/
COPY ./mysql-connector-java-5.1.44-bin.jar /usr/local/tomcat/webapps/test
COPY ./db.jsp /usr/local/tomcat/webapps/test
COPY ./web.xml /usr/local/tomcat/webapps/test
CMD ["catalina.sh", "run"]
Tomcat文件夾-db.jsp
<%@ page contentType = "text/html; charset=utf-8" %>
<%@ page import = "java.sql.DriverManager" %>
<%@ page import = "java.sql.Connection" %>
<%@ page import = "java.sql.Statement" %>
<%@ page import = "java.sql.ResultSet" %>
<%@ page import = "java.sql.SQLException" %>
<html>
<head><title>회원 목록</title></head>
<body>
MEMBER 테이블의 내용
<table width="100%" border="1">
<tr>
<td>이름</td><td>아이디</td><td>이메일</td>
</tr>
<%
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String jdbcDriver = "jdbc:mysql://mysql1:8888";
String dbUser = "..";
String dbPass = "..";
String query = "select * from test";
conn = DriverManager.getConnection(jdbcDriver, dbUser, dbPass);
stmt = conn.createStatement();
rs = stmt.executeQuery(query);
while (rs.next()) {
String sqlRecipeProcess = rs.getString("id");
String sqlRecipeProcess2 = rs.getString("name");
}
}catch(SQLException ex) {
out.println(ex.getMessage());
ex.printStackTrace();
} finally {
if (rs != null) try { rs.close(); } catch(SQLException ex) {}
if (stmt != null) try { stmt.close(); } catch(SQLException ex) {}
if (conn != null) try { conn.close(); } catch(SQLException ex) {}
}
%>
</table>
</body>
</html>`
mysql文件夾-dockerfile
FROM mysql:5.7
ENV MYSQL_ROOT_PASSWORD=".."
ENV MYSQL_DATABASE=".."
ENV MYSQL_USER=".."
ENV MYSQL_PASSWORD=".."
EXPOSE 3306
tomcat文件夾-mysql-connector-java-5.1.44-bin.jar
Tomcat文件夾-web.xml
<web-app></web-app>
運行者:docker build -t my-mysql。 docker運行-dit --name mysql1 -p 3306:3306 my-mysql
並使用mysql工作台輸入datadase(我被授予特權並在docker mysql bash上檢查了數據。)
由......運營 :
docker build -t my-tomcat .
docker run -dit --link mysql1:my-mysql --name myTomcat1 -p 8888:8080 my-tomcat
可以訪問http:// localhost:8888 / test / db.jsp
我認為jdbc.jar出錯或db.jsp錯誤。
您可以嘗試這樣做(假設web.xml是Web應用程序上下文文件):
FROM tomcat:latest
RUN mkdir -p /usr/local/tomcat/webapps/test/WEB-INF/lib
COPY ./mysql-connector-java-5.1.44-bin.jar /usr/local/tomcat/webapps/test/WEB-INF/lib
COPY ./db.jsp /usr/local/tomcat/webapps/test
COPY ./web.xml /usr/local/tomcat/webapps/test/WEB-INF
CMD ["catalina.sh", "run"]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.