Starting jenkins (via systemctl): Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
journalctl -xe에서 에러 메시지 :
jenkins[9063]: jenkins: failed to find a valid Java installation systemd[1]: jenkins.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: jenkins.service: Failed with result 'exit-code'.
systemd[1]: Failed to start My Company Jenkins Controller.
원인 : Java 설치 경로를 찾지 못함
해결 방법
1) 젠킨스 포트 번호 맞추기 (8080가 기본 포트로 설정 되어있으나 8080을 Well-Known 포트처럼 암묵적으로 많이쓰기때문에 변경필요)
- 젠킨스 config 수정
sudo vi /etc/sysconfig/jenkins
JENKINS_PORT="9100"
- 젠킨스 서비스 config 수정
sudo vi /usr/lib/systemd/system/jenkins.service
Environment="JENKINS_PORT=9100"
개발자도구의 네트워크 > 500 error 발생한 url 클릭 > Response에서 하기의 오류 메세지를 보고 처리 할 수 있었음
"org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.lang.IllegalStateException: 어떤 multi-part 설정도 제공되지 않았기 때문에, part들을 처리할 수 없습니다."
- ⑤ : compile 버전 설정 하는 곳 (현재 0.5.0버전 까지 나옴, github에 올라와있는 파일은 0.4.25 버전일때 작성함, 0.4.25 + commit.59dbf8f1 선택)
- ⑥ : 현재 파일에 대해 compile 시작
- ⑦ : 현재 파일의 contract의 목록
- ⑧ : 선택한 contract의 정보를 볼수 있음(name, metadata, bytecode, abi, web3deploy, metadata hash, swarmlocation, functionhashes, gasestimates, devdoc, userdoc, runtime bytecode, assembly), 주로 bytecode, abi 정도 만 사용
- ⑨ : 해당 contract의 ABI 복사
- ⑩ : 해당 contract의 Bytecode 복사
- ⑪ : contract에 대한 동작을 실행 할 때 보여지는 consol log
call : web3.ether. 블록체인의 function을 불렀을때 표시
vm : 이 노드로 트랜잭션이 발생됐을때 표시
- ⓐ : 솔라디티 실행에 관련된 탭
- ⓑ : .sol 파일을 실행 할 환경의 목록 (JavaScript VM, Injected Web3, Web3 Provider)
javascript Vm : 실행 환경이 노드에 연결되지 않고 모든 것이 로컬 및 메모리에서만 실행, remix에서 자체적인 머신
Injected Web3 : Metamask 또는 유사한 공급자가 실행 환경을 제공
Web3 Provider : ganache 또는 geth와 같은 환경으로 실행
- ⓒ : 실행환경과 연결된 계정 목록 (가나슈는 10개의 개정 제공, metamask는 1개의 계정 제공)
- ⓓ : contract 배포시 설정한 수치를 넘어갔을때 실행하지못하게 하기 위한 장치
- ⓔ : 트렌잭션에 실어 보낼 eth
- ⓕ : 현재 .sol 파일에 작성된 contract 목록
- ⓖ : 선택된 contract를 배포(배포시 초기값을 설정해 줘야한다면 택스트박스에 값을 넣어줘야함)
- ⓗ : 주소를 통해 contract를 load, 이미 배포된 선택된 contract와 연결하는 것
- ⓘ : Deploy된 conract(클릭 시 contract에 포함된 function이 보임 ⓙ, ⓚ가 예시)
- ⓙ : 붉은 색의 버튼은 트랜잭션비용을 지불, ⓚ이외의 함수 호출 임을 나타냄
- ⓚ : 푸른 색의 버튼은 gas비용없이 트랜잭션없이가져옴, function 호출 시 값을 가져오는 함수임을 나타냄(get 함수)