IT 공부/Java 2024. 12. 11.
[Java] JFR (Java Flight Recorder)
Java Application 의 실시간 상태 정보를 확인할 수 있다.JFR의 경우 라이선스가 필요 사용방법)1.JVM 옵션 아래 내용을 추가 한다.- XX:+UnlockCommercialFeatures- XX:+FlightRecorder UnlockCommercialFeatures 옵션을 사용한다는 것은, 라이선스 정책에 동의하는 것을 의미한다. 2. jcmd 를 이용하여 덤프 파일 생성jcmd JFR.start duration=60s filename=test01.jfr duration = 다음에 시간, filename 에는 파일네임.jfr 을 입력하면 된다. 3. 남겨진 파일은 아래 JMC 도구로 확인하면 된다.https://www.oracle.com/java/technologies/javase..
IT 공부/WebLogic 이슈 2024. 12. 6.
[WebLogic] 웹로직 HTTP Access 로그가 안쓰여질 때
테스트를 하기 위해서 웹로직도 Access Log 를 보는 경우가 있다.이럴 때 아무리 요청을 보내도 Access Log 가 찍히지 않거나 한참을해야 찍히는 경우가 있다.또는 지난 날의 액세스로그를 살펴보는데 특정일의 액세스 로그는 있지만, 어떤 날은 액세스 로그가 없을 때가 있다. 이 경우 로그파일의 버퍼가 기본값으로 되어있기 때문이다. 기본값이 8kb 이기에 이 값 이상으로 들어가면 이제 쓰여지는데 보통 사용량이 많이 적은 서버들은 넘기기 힘든 경우가 있다. 웹로직 콘솔화면에서 환경 - 서버 - 설정할 매니지드 서버 클릭 - 로깅 - HTTP 로 접근한다. 아래 고급을 눌러 창을 확장하면 로그 파일 버퍼가 8로 되어있는데, 이 값을 0으로 바꾸고 저장해주면 된다.
IT 공부/WebLogic 이슈 2024. 12. 3.
[WebLogic] WAS 기동 중 애플리케이션 lib 교체 시 다운 현상
업데이트 및 정기배포의 경우 WEB-INF/lib 아래 jar 파일을 교체하는 경우가 생기는데보통은 jar 파일 교체 후 서버 재기동을 한다. (배포를 해야해서) 그러나 우선 배포 후 어떤 이유로 인해 재기동을 미룰때가 있는데 이 경우 아래와 같이 core dump 가 떨어지며 서버가 죽어버릴 수 있다. # A fatal error has been detected by the Java Runtime Environment:## SIGSEGV (0xb) at pc=0xffffffff7ea8241c, pid=, tid=## JRE version: Java(TM) SE Runtime Environment (8.0_112-b15) (build 1.8.0_112-b15)# Java VM: Java HotSpot(T..
IT 공부/WebLogic 이슈 2024. 12. 2.
[WebLogic] 날짜 yyyymmdd JVM 옵션
오라클 jdbc 업그레이드 하면서 날짜를 넣는 항목에 시 분 초 까지 들어가는 경우가 생겼다. setDate() 메서드를 사용하는경우 원래라면2024-12-02 00:00:00 으로 들어가야 하는데, 업그레이드 이후에는 2024-12-02 17:03:04 처럼 시분초가 표시되는 경우가 있다. 이럴 경우-Doracle.jdbc.DateZeroTime=true -Doracle.jdbc.DateZeroTimeExtra=true 옵션을 웹로직에 추가하면 00:00:00 으로 다시 나오게 된다. https://stackoverflow.com/questions/59175991/can-java-sql-date-be-forced-to-insert-only-years-months-days-to-an-oracle-d..
IT 공부/WebLogic 이슈 2024. 10. 24.
<BEA-171519> <BEA-000362> <BEA-000383> 웹로직 오류
위처럼 에러 로그가 연달아 여러개 찍힐 때가 있다. 보통은 웹로직 재기동시 발생하며, 종료를 제대로 시키지 않은 채 다시 기동을 할 때 발생하는 경우가 많다. 해결방법)1. 우선 정상종료 되지 않은 weblogic 프로세스를 kill -9 명령어를 이용해 강제 종료 시킨다. (ps -ef | grep weblogic 으로 확인) 2. ${DOMAIN_HOME}/servers 디렉토리를 백업 후 ${DOMAIN)HOME/servers/Adminserver 아래의 AdminServer.lok 파일을 삭제 후 재기동 3. 잘 되지 않는다면 servers 디렉토리를 통째로 삭제하고 재기동 해본다. (반드시 백업 받아둔 상태, 사실 servers는 없어도 큰 문제가 없긴하다.) 원인) 로그를 보면 Ldap 관..
IT 공부/Web-WAS 2024. 10. 21.
[WebLogic] 웹로직 버전 확인 방법 (11g, 12c, 14c구분)
1. config.xml 에서 확인 ${DOMAIN_HOME}/config 아래 config.xml 을 에서 버전을확인할 수 있다. wls_domain 12.2.1.4.0 2. WLST 를 이용하여 확인 [17:28:22 /u02/sw/weblogic/myDomain/bin]> . ./setDomainEnv.sh [17:28:39 /u02/sw/weblogic/myDomain]> java weblogic.WLSTInitializing WebLogic Scripting Tool (WLST) ...Welcome to WebLogic Server Administration Scripting ShellType help() for help on available commandswls:/offline> v..
IT 공부/Web-WAS 2024. 10. 2.
[WebLogic] password({AES256}) 암복호화 방법
- **암호화**1. Domain Home 아래 bin 이동2. . ./setDomainEnv.sh3. java weblogic.security.Encrypt ${password} 입력예시) - **복호화**1. 오라클홈 wlserver/common/bin 이동2. ./wlst.sh3. domain = “${도메인홈}”4. service = weblogic.security.internal.SerializedSystemIni.getEncryptionService(domain)5. encryption = weblogic.security.internal.encryption.ClearOrEncryptedService(service)6. print encryption.decrypt("{AES256}비밀번호") 예..
IT 공부/WebLogic 이슈 2024. 9. 10.
[Error] <BEA-090783> Server is running in Development ... 에러
원인 보통 웹로직 기동쉘을 만들어서 실행하였고, 운영모드일경우 발생 해결방법 boot.properties 가 없어서 일 확률이 높다. boot.properties 를 생성한다vi boot.properties-------------------------username=${admin계정}password=${admin비밀번호} 해당 boot.properties 를${DOMAIN_HOME}/servers/${SERVER_NAME}/security/boot.properties 에 위치시키거나 웹로직 기동쉘에 아래 옵션을 추가한다.-Dweblogic.system.BootIdentityFile=${DOMAIN_HOME}/boot.properties그리고 위치는 domain_home 에 나는 이미 있는데도 안됐었는..
IT 공부/프로젝트 2024. 8. 30.
input 데이터 팝업창 띄워 가져오기
이런 형식으로 사람을 찾아서 넣어 입력해서 input 제출하는 form 작성중임어느정도 데이터가 많고, 기존 데이터에서 골라야 하기에 select 보다 그냥 창띄워서 가져오는게 더 좋다고 생각하여 이렇게 만들었음. div> label for="engineerId">엔지니어:label> input type="text" id="engineerName" name="engineerName" required readonly> input type="hidden" id="engineerId" name="engineerId" required> button ..
IT 공부/프로젝트 2024. 8. 26.
[MyBatis] DB snake_case 를 camelCase 로 자동 변환하기 (Spring Boot)
db 컬럼은 보통 snake case로, Java 객체는 주로 camel case 로 사용하는데서로 이름을 맞춰주지않는다면 가져올수가 없다. 그래서 쿼리문 alias 를 이용하여 맞춰줄수도 있지만 설정한줄을 통해 가능하다 application.yaml 또는 application.properties 에 다음과 같은 설정을 넣어주면 된다. .yamlmybatis: configuration: map-underscore-to-camel-case: true .propertiesmybatis.configuration.map-underscore-to-camel-case=true
IT 공부/프로젝트 2024. 8. 24.
[GitLab-Jenkins] 깃랩 - 젠킨스 연동하여 push Event 발생 (자동 build & 배포)
1. GitLab Access Token 발급 깃랩 로그인 후 ( root 계정 아니여도 됨 ) 우측 상단에서 Preferences 클릭 Access Tokens 클릭 후 토큰 이름, 만료일 입력Select scopes 는 필요한 내용들 클릭 (나는 다 선택함) 후 Create 하여 생성 아래 생성된 토큰 확인하여 복사해둠. 2. 젠킨스 설정 젠킨스 로그인 후 Jenkins 관리 - Plugins 에서 우선 gitlab 플러그인 설치 이외에 Jenkins 관리 - Tools 에서 JDK 및 Gradle 등의 버전을 설정할 수 있는데.. 나는 스크립트쉘로 빌드돌릴거라 안했음 2. Credientail 생성 Jenkins 관리 - Credentials 클릭하여 위 화면 접근아래 Stores scope..
IT 공부/프로젝트 2024. 8. 20.
[GitLab] 깃랩 계정가입 및 프로젝트 멤버 초대 방법
1. 접속 Register now 클릭 2. 정보 입력 후 Register 버튼 클릭 3. root 계정으로 승인 4. 좌측 상단 메뉴에서 Admin 클릭 5. Overview - Users 탭 클릭 후 대기중인 Pending approval 클릭 User administration 항목에서 Approve 를 클릭하여 가입신청을 승인한다. 프로젝트 멤버 1. 프로젝트로 들어간 후 Project information - Members 클릭 2. 우측 상단 Invite members 클릭 3. 항목 입력 후 Invite
IT 공부/WebLogic 이슈 2024. 8. 14.
[WebLogic] Failed to bind remote object Exception (DataSource) 에러
데이터소스를 생성하다가 생기는 오류인데 weblogic.common.ResourceException: Failed to bind remote object (ClusterableRemoteRef Initialized?=false(8313353979906136800S:${IP및 호스트, 도메인 정보 등} [weblogic.jdbc.common.internal.RemoteDataSource]) to replica aware stub at ${데이터소스 이름} ... 생략 형식으로 발생한다. 원인 :JNDI 가 겹치는 데이터소스가 있을 때 발생 해결책 :JNDI 를 변경하거나, 겹치는 JDNI 를 가진 데이터소스를 삭제 또는 주석처리
IT 공부/WebLogic 이슈 2024. 8. 7.
[Error] <BEA-090504> Certificate chain received from ... 이슈
인증서 체크가 제대로 안될 때 발생 1. 호스트 이름 확인방법 변경 1. 웹로직 콘솔 접속 후 로그인 2. 왼쪽 환경 - 서버 - 수정할 서버 클릭 3. SSL 탭 클릭 4. 고급 클릭하여 드롭다운 메뉴 확인 후 아래 값 수정 1. 호스트 이름 확인 -> 사용자정의 호스트 이름 확인 프로그램으로 변경(Custom Hostname Verifier) 2. 사용자정의 호스트이름 확인 프로그램 -> weblogic.security.utils.SSLWLSWildcardHostnameVerifier 입력 5. 해당 서버 재기동2. 호스트 이름 확인 무시 (콘솔) 1. 웹로직 콘솔 접속 후 로그인 2. 왼쪽 환경 - 서버 - 수정할 서버 ..
IT 공부/WebLogic 이슈 2024. 8. 2.
[Error] <BEA-090403> Authentication for user denied 이슈
웹로직 기동시 발생하는 오류로보통 boot.properties 파일이 없어서 발생하는 오류다. 1. 도메인 아래 모든 서버 하위 Security 폴더에 boot.properties 를 만들어 등록한다. 경로 예시)/SW/weblogic/domains/myDomain/servers/testServer/security 아래vi boot.propertiesusername=${Admin계정}password=${Admin비밀번호} 또는 2. boot.properties 를 하나 생성하여 기동쉘에 boot.properties 경로를 옵션으로 넣어준다. -Dweblogic.system.BootIdentiFile=${boot.properties 경로}예시)-Dweblogic.system.BootIdentiFil..
IT 공부/WebLogic 이슈 2024. 7. 31.
[WebLogic] 14c 업그레이드 이후 기동속도 느려짐
11g 이하버전에서 14c로 업그레이드를 할 경우 기동속도가 느려지는 현상이 발생 할 수 있다. 대개는 버전 업그레이드 되면서 웹로직 기동 및 애플리케이션 배포 시 검사하는것들이 늘어나 기동시간이 늘어날 수도 있는데, 눈에 띄게 기동시간이 증가할 경우가 있다. 이번 사례는 버전업그레이드 이후 기동시간이 기존 ASIS WebLogic 11g 에 비해 새로운 TOBE WeBLogic 14c의 기동시간이 1분 이상 (기존보다) 더 걸리는 현상이 발생하였다. 다방면으로 내용을 확인 한 결과 CDI 의 BeanScanning 때문이라는것을 확인하였다.(기동 시 Thread Dump 를 비교하였음) CDI 1.1 버전 (Java EE 7) 부터 Bean Scanning 기능이 들어왔고, jar 가 많은 경우 dep..
IT 공부/프로젝트 2024. 7. 29.
[Spring] 게시판 만들기 15 - 댓글 알람 추가하기 (WebSocket, AOP)
이전 포스팅 마지막 jsp (list.jsp) 를 보면 레이아웃 수정이 있었는데 다른페이지들도 그렇게 맞추면된다. 그럼 댓글을 달았을 때 웹소켓을 사용하여 알람이 나오도록 한번 만들어 본다. 1. build.gradle 에 아래 내용을 추가한다. implementation 'org.springframework.boot:spring-boot-starter-websocket'//웹소켓용 implementation 'org.springframework.boot:spring-boot-starter-aop' implementation 'org.aspectj:aspectjweaver:1.9.19'//AOP 용 알람을 보낼 websocket 과, 특정 로직을 처리할때 (댓글이 달릴때) 사용하기 위한..
IT 공부/프로젝트 2024. 7. 24.
[Spring] 게시판 만들기 14 - 권한 관리 2
Role 추가에따라 dao 도 Post, User 둘다 수정이 있었다.특히 User는 Role 직접적인 CRUD 내용도 추가하였다. package com.example.post.dao;import java.util.HashMap;import java.util.List;import java.util.Map;import org.mybatis.spring.SqlSessionTemplate;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Repository;import com.example.post.model.Category;import com.example.post.model.Po..
IT 공부/프로젝트 2024. 7. 23.
[Spring] 게시판 만들기 13 - 권한관리 1
권한을 안넣어서 약간 이빨빠진채로 만들어둔 유저와 게시판카테고리를 통합시켜 보자.. 1. 페이지 작성 role_management.jsp%@ page contentType="text/html;charset=UTF-8" language="java" %>%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>a%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>DOCTYPE html>html lang="en">head> meta charset="UTF-8"> title>권한 관리화면title> sec:csrfMetaTags /> script src..
IT 공부/프로젝트 2024. 7. 23.
[Spring] 게시판 만들기 12 - 게시판 카테고리 관리기
그럼 이어서 게시판 카테고리와 권한을 만든다. 우선 게시판 카테고리 생성및 수정 1. 페이지 만들 board_management.jsp%@ page contentType="text/html;charset=UTF-8" language="java" %>%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>DOCTYPE html>html lang="en">head> meta charset="UTF-8"> title>게시판 관리화면title> sec:csrfMetaTags /> script src=..
IT 공부/프로젝트 2024. 7. 22.
[Spring] 게시판 만들기 11 - 계정 생성하기 (Spring Security 3)
권한, 게시판(카테고리)를 만들기 이전에 해당 기능들을 이용할 수 있는 계정부터 만들 수 있게 페이지를 생성한다. 1. WEB-INF/jsp/admin 아래 페이지 생성 우선 계정관리 페이지를 하나 만든다user_management.jsp%@ page contentType="text/html;charset=UTF-8" language="java" %>%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>DOCTYPE html>html lang="en">head> meta charset="UTF-8"> ..
IT 공부/프로젝트 2024. 7. 20.
[Spring] 게시판 만들기 10 - Spring Security 2
로그인까지 했으니 이제 로그아웃.계정, 권한 만들기,admin 페이지를 만들어 보겠다. 1. 로그아웃 하기 우선 로그아웃 기능을 추가한다.이전에 만든 SecurityConfig 에 내용을 추가한다. http .sessionManagement((auth) -> auth .sessionFixation().changeSessionId() //세션공격 보호 .maximumSessions(1) //세션 최대 개수 .maxSessionsPreventsLogin(false) //다중 로그인 시 처리방법 treu : 신규로그인차단, false : 기존세..
IT 공부/프로젝트 2024. 7. 19.
[Spring] 게시판 만들기 9 - Spring Security 등록하기 1
이제 로그인 절차를 위해 스프링 시큐리티를 사용해본다. 스프링 시큐리티외에 그냥 해도 되긴 하지만 (예전에 포폴은 그냥만든듯) 스프링 시큐리티를 사용해서 로그인 구현을 해보자. User 관리도 로그인/로그아웃, 회원가입, 권한관리, 회원설정 변경등 다양한 기능이 있지만..우선 로그인부터하고, 회원설정은 나중에 봐서 추가. 일단 스프링 시큐리티는 Spring Boot 들어오기전 앞단 Filter 에서 처리해준다고 한다. 이런 인증절차를 가지고 있고, 이 인증절차는 Spring MVC 앞에서 수행된다고 한다. Spring Security 로그인 절차 등록 1. 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-security..
IT 공부/프로젝트 2024. 7. 16.
[Spring] 게시판 만들기 8 - 파일 업로드/다운로드
게시판 기능에 파일업로드도 추가해보도록 한다. @Autowired FileService fileService; private static String UPLOAD_FOLDER = "D:/logs/"; private static final long MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB @PostMapping("/Modify") public ModelAndView modifyPost(HttpServletRequest request, HttpServletResponse response, @RequestParam("file") MultipartFile file) throws UnsupportedEncodingException { ..
IT 공부/자격증 2024. 7. 15.
CKA 시험 일정 변경 방법
호기롭게 약 한달반전에 CKA 신청을 했지만https://wsnake0.tistory.com/entry/Certified-Kubernetes-Administrator-CKA-%EC%8B%A0%EC%B2%AD Certified Kubernetes Administrator (CKA) 신청CKA 자격증 시험 등록함시험은 2달뒤에 7/25 볼 예정 혹시 공부같이 할 사람 있으면 ... 같이해요 결제는 213달라에 했는데코드는 MAY24SPECIALCT 입력했음 아마 5월까지만 쓸 수 있어서 새로 찾아봐야wsnake0.tistory.com 개발 공부하느라 하지를 못했다. CKA 기회가 두번이라는 말에 이번시험은 그냥 맛만보고 다음꺼 열심히해야지 ㅠㅠ 라고 생각하다가한번 찾아보니까 일정 변경이 가능하다고 한다. ..
IT 공부/프로젝트 2024. 7. 11.
[Spring] 게시판 만들기 7 - 댓글 기능 2
VS Code 에서 바로복사하면 예쁘게해주는지 이제 처음 알았음.. 코드블럭 안쓸래 이제 PostController 내용 추가 @Autowired CommentService commentService; @GetMapping("/Content") public ModelAndView viewPost(HttpServletRequest request) { String num = request.getParameter("num"); Post post = postService.getPost(num); mav.setViewName("Post"); mav.addObject("post", post); ListComment>..
IT 공부/프로젝트 2024. 7. 10.
[Spring] 게시판 만들기 6 - 댓글 기능 1
게시판에 댓글을 추가해본다. 대댓글은 나중에 해보고 우선 댓글부터.. 우선 model 객체를 하나 만든다. model 패키지에 Comment.java 로 하나만들었음.package com.example.post.model;import lombok.Data;@Datapublic class Comment { private String commentId; private String contents; private String author; private String postId; private String date;} 댓글id (번호 자동생성), contesnt : 댓글내용author : 작성자postId : 댓글이 작성된 글 번호date : 작성시각 Comment.postId 와..
IT 공부/프로젝트 2024. 7. 4.
[Spring] 게시판 만들기 5 - 삭제
마지막으로 삭제기능 PostController.java 에 아래 Delete 메서드 작성 @GetMapping("/Delete") public ModelAndView deletePost(HttpServletRequest request) throws IOException { postService.deletePost(request.getParameter("num")); mav.setViewName("redirect:/"); return mav; } PostService 에 이어서 Service 작성 public void deletePost(String num) throws IOException { postDao.deletePost(n..
IT 공부/프로젝트 2024. 7. 3.
[Spring] 게시판 만들기 4 - 조회 및 수정
이어서 게시글 조회 및 수정 기능을 추가해 본다. Post.jsp 라는 페이지에서 조회와 수정을 두개 다 할수있게 만들었기에 묶었음. 이전과 동일하게 먼저 Controller 에 Content GetMapping 시켜준다. @GetMapping("/Content") public ModelAndView viewPost(HttpServletRequest request) { String num = request.getParameter("num"); Post post = postService.getPost(num); mav.setViewName("Post"); mav.addObject("post", post); mav.addObject(..