젠킨스 사용법을 정리해놓는게 나중에 다른 프로젝트 진행을 위해서도, 기존 프로젝트의 ci/cd를 개선하는데도 도움이 될 것 같다. 또는 젠킨스를 어느 상황에 어떻게 쓰면 좋을지 방법들을 적고 실험도 해보고 다양한 것들을 진행해야 겠다.

com.fasterxml.jackson.databind.JavaType.isReferenceType()Z

라는 에러가 발생

 

프로그램 소스를 압축하여 그대로 옮겨서 다른 서버에 세팅하는 과정에서 발생하였고

localhost.log 에서 확인할 수 있었다.

 

jackson-databind 라이브러리도 변동 없이 그대로 옮겼고

 

java도 그대로 옮겼는데 같은 에러가 발생했다.

 

 

 

stackoverflow에서는 pom.xml 이나 build.xml 파일에서 라이브러리를 버전을 맞추라고는 하는데

이미  jackson-databind.2.9.4 로 pom.xml에 명시되어 있었고 해당라이브러리도 이미 lib 폴더에 있었다.

 

하지만 현 서버는 ant스크립트에 의해서 빌드배포가 되기때문에

gradle이나 maven처럼 pom.xml이나 build.xml을 사용하지는 않는다.

 

classpath를 사용하고 있었기에

classpath에 명시된 라이브러리 버전을 맞추고 기존에 있던 라이브러리는 삭제하였다.

 

해당 프로그램에 사용되는 lib폴더가 많았기에 폴더마다 변경사항을 적용하여 적용되는 폴더에만 변경사항을 적용하고

나머지는 원복하였다.

 

구성이 커널 마이너 버전을 제외하고는 거의 일치하는 다른 서버에서는 동작하는 프로그램이

왜 그런 에러를 일으켰는지는 더 살펴볼 시간이 있으면 좋겠다.

'tomcat' 카테고리의 다른 글

tomcat 로그 수준 설정  (0) 2024.04.30

로드밸런서를 사용하고자 하는데

 

계속해서 health Check 에서 fail이 났다.

 

방법은 여러가지가 있다고는 한다. 톰캣을 사용하는 경우 nginx에서  proxy_pass등을 이용해

톰캣의 healthcheck.jsp를 사용하여 'OK'나 200 코드를 출력해서 success를 받는다고한다.

 

그런데 톰캣을 사용하지 않고 nginx만 사용하여, 고민을 하던 찰나에

바로 리턴값을 주면 되지 않을까 싶어서 활용해보았다.

 

nginx health check 라고 검색하면 여러개 나올 듯 싶다.

 

 

location /health {
           default_type text/html;
           return 200 "<!DOCTYPE html><h2>This is healthy</h2>\n";
       }

'nginx' 카테고리의 다른 글

Nginx 속도 제한 설정  (0) 2025.07.16
페이지가 작동하지 않습니다 ERR_EMPTY_RESPONSE  (2) 2024.11.25
Nginx 용량 설정  (0) 2024.04.30

curl --header "Private-Token: 토큰" \

--header "Content-Type: application/json" \

--request POST \

--data '{"user_id": 1, "access_level": 30}' \

"http://깃랩주소:포트/api/v4/groups/3/members"

 

access_level 이 접근 권한 이다

  • No access (0)
  • Minimal access (5)
  • Guest (10)
  • Reporter (20)
  • Developer (30)
  • Maintainer (40)
  • Owner (50)

이렇게 정할 수 있으며 위 예시에서는 30, developer의 권한을 사용자에게 할당하고 있다.

gitlab 서버의 cli 환경에서 진행했다.

 

등록하고 싶은 유저가 여러명인 경우 파이썬의 for 문을 이용해서 진행해본다

 

 

import requests


gitlab_url = "http://깃랩주소:포트/api/v4"
access_token = "토큰"

# 추가할 멤버와 그룹 ID 설정
user_id = 1  # 사용자의 ID
group_id = 1  # 그룹의 ID

# 멤버 추가 요청을 위한 데이터 설정
user_data = [{
    "user_id": user_id,
    "access_level": 30  # 액세스 수준 
},
{
    "user_id": 2,
    "access_level": 30  # 액세스 수준 
}
]
# API 요청을 보내기 위한 HTTP 헤더 설정
headers = {
    "Private-Token": access_token,
    "Content-Type": "application/json"  # 데이터 형식 지정
}

# 그룹에 멤버 추가 요청 보내기
# 응답 확인

for data in user_data:
    response = requests.post(f"{gitlab_url}/groups/{group_id}/members", headers=headers, json=data)
    if response.status_code == 201:
        print("그룹 멤버 추가가 성공적으로 완료되었습니다.")
    else:
        print("그룹 멤버 추가에 실패했습니다. 상태 코드:", response.status_code)
        print("에러 메시지:", response.json())

 

+ Recent posts