일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- docker
- IntelliJ
- 깨끗한코드
- 객체지향
- JavaScript
- 독서
- 성수
- 헤드퍼스트디자인패턴
- JAVA개발자
- Java
- DesignPattern
- 성수맛집
- 독서일지
- 성수볼거리
- 직장인점심
- 개발자
- 상속
- 객체지향프로그래밍
- Linux
- 주니어개발자
- 헤드퍼스트
- 직장인
- 성수핫플
- 디자인패턴
- 책너두
- 오브젝트
- 성수직장인
- 책읽기
- 코딩
- 클린코드
- Today
- Total
닭발개발
Ubuntu에 tomcat 설치, jndi로 mariadb 연결, jsp 화면 보기 본문
별거아닌데 개고생했던 일들을 기록해놔야겠다... ㅂㄷㅂㄷ
먼저 Vm ware에 tomcat 깔아줌
sudo로 깔면 무슨일인지 dream 계정 아래에 안되고 root 계정 아래로 되어서 tomcat 사이트 가서 tar 받아옴
dream@dream-virtual-machine:~$ ls
apache-tomcat-9.0.86 apache-tomcat-9.0.86.tar.gz Desktop Documents Downloads Music Pictures Public snap Templates Videos
dream@dream-virtual-machine:~$
apache-tomcat-9.0.86.tar.gz 가져와서 압축 풀어주니 apache-tomcat-9.0.86(이하 tomcat) 이렇게 되었고
그리고 mariadb 설치
sudo apt update
sudo apt install mariadb-server
보안설정을 해주는데
sudo mysql_secure_installation
여기서 다 엔터치다가 pw 해주는 부분만 신경써서 비번설정해준다.
그리고 sample db 하나 만들어주기
sudo mysql -u root -p
sample db 설정하고 users 테이블 하나 만들어줌.
CREATE DATABASE mydatabase;
CREATE USER 'root'@'localhost' IDENTIFIED BY '1234';
GRANT ALL PRIVILEGES ON sampledb.* TO 'root'@'localhost';
FLUSH PRIVILEGES;
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(255),
email VARCHAR(255)
);
INSERT INTO users (username, email) VALUES
('user1', 'user1@example.com'),
('user2', 'user2@example.com'),
('user3', 'user3@example.com');
그리고 tomcat 설정파일 수정
tomcat/conf/context.xml
나같은 경우는 conf에 있었는데 다른 사람들은 어딨을지 모름 context.xml을 찾아서 하면 됨.
<!-- 다음 라인을 추가하여 JNDI 데이터베이스 연결 설정을 지정합니다. -->
<Resource name="jdbc/sampledb" auth="Container" type="javax.sql.DataSource"
maxTotal="100" maxIdle="30" maxWaitMillis="10000"
username="root" password="1234"
driverClassName="org.mariadb.jdbc.Driver"
url="jdbc:mariadb://your_db_host:3306/sampledb"/>
<context></context> 안에 위 코드를 넣어주면 됨.
그리고 sample db를 보여줄 index.jsp를 만들어보자
나는 jndi를 써서 mariadb를 연결해줄 것임
index.jsp를 넣어줄 곳은
tomcat/webapps/wassample/index.jsp
webapp아래에 wassample mkdir 하고 그 아래에 넣어줌
<%@ page import="java.sql.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Sample JSP Page</title>
</head>
<body>
<h2>Sample Data from MariaDB</h2>
<%
try {
// JNDI를 사용하여 DataSource를 얻어옴
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource dataSource = (DataSource) envContext.lookup("jdbc/sampledb");
// DataSource를 사용하여 Connection을 얻어옴
try (Connection connection = dataSource.getConnection()) {
// 데이터베이스 쿼리 실행
String sql = "SELECT * FROM users";
try (PreparedStatement preparedStatement = connection.prepareStatement(sql);
ResultSet resultSet = preparedStatement.executeQuery()) {
while (resultSet.next()) {
// 결과 출력
out.println("ID: " + resultSet.getInt("id") + "<br>");
out.println("Username: " + resultSet.getString("username") + "<br>");
out.println("Email: " + resultSet.getString("email") + "<br><br>");
}
}
}
} catch (Exception e) {
// 예외 처리
out.println("Error: " + e.getMessage());
}
%>
</body>
</html>
// JNDI를 사용하여 DataSource를 얻어옴
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource dataSource = (DataSource) envContext.lookup("jdbc/sampledb");
이부분이 중요함.
여기까지 하고 띄웠는데 에러가 남...
db를 연결할 수 없다는 에러..
아 그리고 tomcat 구동하는 방법은
tomcat/bin 아래에 shutdown.sh startup.sh 있음
암튼 에러를 고치기 위해서는. 내가 쓴 방법은.
구글링 했더니 mariadb 연결하는 jar 를 tomcat/lib 아래에 넣어주래서.
https://repo1.maven.org/maven2/org/mariadb/jdbc/mariadb-java-client/2.7.2/
Central Repository: org/mariadb/jdbc/mariadb-java-client/2.7.2
repo1.maven.org
여기에서 jar 가져와서 넣어줌.
이것도 근데 내 maria 버전하고 맞아야함.
저기 중에서도 source-jar 이런거 안됨.
무조건 그냥 jar...!!!!!!!!!!
이거를 lib 아래에 넣어주고.
구동하면...
http://내 아이피:8080/wassample
짠...
기쁘다...
....
.....
'Linux' 카테고리의 다른 글
Ubuntu 부팅에러 initramfs (0) | 2024.02.28 |
---|---|
[Linux] RAID, RAID-1, RAID-5 (0) | 2023.11.21 |
[Linux] umask 값 (0) | 2023.11.16 |
[Linux] touch 명령어 (0) | 2023.11.16 |
[Linux] awk와 gawk의 차이점 (0) | 2023.11.09 |