2022-04-20-TIL

Today I Learned

QueryDSL

  • https://jojoldu.tistory.com/401
  • https://blog.leocat.kr/notes/2019/09/05/querydsl-sql-case-statement
  • https://bottom-to-top.tistory.com/45
  • https://dotoridev.tistory.com/3
  • https://cornswrold.tistory.com/335
  • https://velog.io/@hellonewtry/QueryDsl-%EC%8A%A4%EC%B9%BC%EB%9D%BC-%EC%84%9C%EB%B8%8C%EC%BF%BC%EB%A6%AC-Select-%EC%84%9C%EB%B8%8C%EC%BF%BC%EB%A6%AC-%EC%97%90%EC%84%9C-limit-%EC%B2%98%EB%9F%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95
  • https://ttl-blog.tistory.com/217
  • https://jojoldu.tistory.com/523
  • https://stackoverflow.com/questions/28047863/querydsl-any-concat

Unsupported class file major version 61 error

  • https://medium.weehong.me/jdk-17-unsupported-class-file-major-version-c64ab11b9b72
  • https://stackoverflow.com/questions/69425829/unsupported-class-file-major-version-61-error

Apache Tomcat

  • https://tomcat.apache.org/
  • https://inpa.tistory.com/entry/TOMCAT-%E2%9A%99%EF%B8%8F-%EC%84%A4%EC%B9%98-%EC%84%A4%EC%A0%95-%EC%A0%95%EB%A6%AC

Tomcat ROOT Context

  • https://tomcat.apache.org/tomcat-8.5-doc/jndi-resources-howto.html
  • https://myhappyman.tistory.com/40
  • https://www.lesstif.com/java/tomcat-root-context-webapp-14745616.html
  • https://stackoverflow.com/questions/7276989/how-to-set-the-context-path-of-a-web-application-in-tomcat-7-0

Tomcat Access Log

  • https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=bg_ellder&logNo=107084468
  • https://iamjoso.tistory.com/26

Tomcat AJP Error

  • https://haenny.tistory.com/188

Tomcat 404 에러

처음에는 톰캣의 설정파일인 server.xml이나 톰캣관련 문제 때문이라고 생각했다. 왜냐하면 로컬에서 JDK 버전을 바꾸어가면서 모두 시도해보았을 때 정상적으로 실행이 되었기 때문이다. 하지만 LDAP관련 의존성 라이브러리 버전 문제로 에러가 하나 발생해서 버전을 높이고, Redis 커넥션 관련해서 비밀번호가 틀려서 빈 생성이 안되길래 수정했다. 그리고 server.xml도 수정했더니 실행이 되었다. 아마도 두 가지 모두 문제가 되지 않았나 싶다.

  • https://october-east-sea.tistory.com/160
  • https://clsrn4561.tistory.com/10
  • https://xzio.tistory.com/1379
  • https://stackoverflow.com/questions/36186881/setting-tomcat-home-on-terminal-no-such-file-or-directory-found

Docker

Docker Container 접속

> docker ps
CONTAINER ID     IMAGE          COMMAND             CREATED      STATUS      PORTS    NAMES
{container_id}   {image_name}   "catalina.sh run"   8 days ago   Up 8 days   {port}   {name}

> docker exec -it {container_id} /bin/bash
root@{container_id}:/usr/local/tomcat#

docker ps로 컨테이너 ID를 알아낸 뒤 docker exec 명령어로 도커 컨테이너에 접속할 수 있다.

  • https://bluese05.tistory.com/21

Docker Conetainer Log

톰캣의 엑세스 로그를 보면 서버의 로그를 볼 수 있다. 하지만 server.xml 설정이나 다른 이유로 직접 엑세스 로그를 볼 수 없다면, 도커의 컨테이너 로그 전체를 볼 수 있다.

docker logs --tail 50 --follow --timestamps {container_id}

이 명령은 마지막 50줄만 계속 추적해가면서 로그를 출력하는 옵션을 포함해서 로그를 출력한다.

  • https://docs.docker.com/engine/reference/commandline/logs/
  • https://sungwookkang.com/1299

JIB Dockerizing

> docker rmi mcp
> mvn clean package jib:dockerBuild
> docker run -i --rm -p 8080:8080 -e "JAVA_TOOL_OPTIONS=-Dspring.profiles.active=dev" --name {image_name} {image_path}
  • https://www.baeldung.com/jib-dockerizing
  • https://gc.hosting.kr/blog-serverless-jib-container/
  • https://medium.com/@sybrenbolandit/jib-maven-plugin-89c447473d76
  • https://www.javacodegeeks.com/2020/03/jib-containerize-your-java-application.html

Deploying a Java War in a Docker Container

  • https://www.baeldung.com/docker-deploy-java-war

Timezone in Docker Container

  • https://www.cloudsavvyit.com/12859/how-to-handle-timezones-in-docker-containers/