728x90

소스 개발이 끝이 났으면 이제 실행해보자

pom.xml 이 있는 경우

상단 메뉴의 프로젝트 > 실행 > 실행명령 추가 > new run java(maven) 을 실행한다.

화면 가운데에 실행명령어와 웹브라우저 접속 경로가 나온다.

실행명령으로 서버가 시작되면 브라우저에 해당 경로를 입력한다.

오류가 있으면 정상적으로 실행이 되지 않으므로 터미널의 오류 메세지를 확인한다.

ctrl + c 로 중단할 수 있고

다시 가동시킬 때에는 터미널에
mvn spring-boot:run

입력하고 엔터를 치면 서버가 가동된다.

 

728x90
728x90

2020-10-28 00:21:03.762 TRACE 11388 --- [nio-8080-exec-7] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [BIGINT] - [2]

2020-10-28 00:21:03.764 TRACE 11388 --- [nio-8080-exec-7] o.h.type.descriptor.sql.BasicExtractor : extracted value ([role_id1_2_1_] : [INTEGER]) - [2]

2020-10-28 00:21:03.764 TRACE 11388 --- [nio-8080-exec-7] o.h.type.descriptor.sql.BasicExtractor : extracted value ([name2_2_1_] : [VARCHAR]) - [null]

2020-10-28 00:21:03.764 TRACE 11388 --- [nio-8080-exec-7] o.h.type.descriptor.sql.BasicExtractor : extracted value ([user_id3_4_0_] : [BIGINT]) - [2]

2020-10-28 00:21:03.764 TRACE 11388 --- [nio-8080-exec-7] o.h.type.descriptor.sql.BasicExtractor : extracted value ([role_id2_4_0_] : [INTEGER]) - [2]

 

2020-10-28 00:21:03.870 ERROR 11388 --- [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception

java.lang.IllegalArgumentException:

---------

spring security 에서 로그인 시 위와 같은 오류가 난다면

return 된 parameter 중 null인 값이 있어서 그럴 수 있다.

쿼리문을 실행시켜본 다음 null인 Column 과 Class의 parameter name이 동일한지 확인

728x90
728x90

java update 메세지가 자꾸 나와서

sts 상에서 그냥 update를 눌렀더니.... 11이상 설치하라는...

STS버전이 4.4

JAVA는 1.8

이게 뭐야... 어쩔 수 없이

JAVA를 15로 upgrade했는데... lib가 호환이 안되는 것들이 좀 있나보다.

결국 찾아낸 간단한 방법

sts 홈페이지에서 4.8 받으니 문제 해결 됨.... ㅜ.ㅜ

 

728x90
728x90

클럽맨으로 캠핑 가능하냐?
성인2 +아이1

일단 노스피크의 에어텐트 A5EX
트렁크에 실어봤는데...

여기에 에어박스

걱정이다
펌프를 일단 2가지
- 에어박스용 1개
- 텐트용 1개 :압력을 맞출 수 있어서 가져 감

릴선 20m
그라운드 시트

의자도 롱체어 2개 + 아이용 의자 1개
국민이라는 이불 2개
언니베개라는 베개 2개

음식넣을 아이스박스(소프트한거)
롤 테이블

아직 카시트를 하고 있어서 긴쪽 폴딩이 안되고
보조석 뒷자리를 폴딩해야했다.

일단 길게 폴딩한 의자 위로 텐트를 넣고
발부분에 아이스박스 넣고
옆에 빨간 박스에는 베개랑 이불이 들어있음.
트렁크 바닥에 옷가지 박스, 펌프넣은 박스 깔고
위에 에어박스
그위에 의자랑 롤테이블이 다행이도 실렸다.





두 가족이 갔기 때문에
음식부분은 좀 덜 들어갔다
그래도 아이스박스안에 멜론하나 과자 몇 개 계란 6개, 햇반 몇 개 들어있음

박스안에 가스도 5개 들어있고

코펠, 타프가 안들어간 상태이지만
그래도 이정도면 만족해야지 ㅎ



728x90
728x90

잘못보냈으면 미안하다고 해야지...

728x90

갤럭시 와치3

2020. 9. 13. 21:29
728x90

갤럭시 핏이 물이들어갔는지 화면이 안나오고 있는 와중에
할인권 사용했다면 갤럭시 와치3 주문했다는 소식을 들었네.

마침 토요일.
도착했다는 소리에 아이에게 티비시청 시간 추가한 뒤
언박싱에 들어 감

박스상태는 안좋았지만 두꺼운 뾱뾱이라

살포시 포장을 뜯고
뚜껑을 열어보니 흠.. 검은색에 가죽 스트랩
가운데는 충전케이블, 설명서가 들어있는데 괜히 거창함

이제 전원버튼
나도 반갑다

혼자서는 뭐 아무것도 안돼?
폰에서 먼저 연결을 하라네...

그리고
웨어러블 앱 실행해서 워치3선택

연결해 볼까요?

블루투스 연결이 끝나면

뭔가 이제부터 복잡한 게 시작된다

뒷면은 저렇다

일단 차고 하룻밤을 잤다.
웨어러블 앱은 설정만있고
기록은 삼성헬스에서 한다...귀찮게

어쨌거나 결과를 보니 충격이다...
깊은수면 시간이 '0'이다
이거... 믿을만 한건가?


참고용이지만 0분은 좀 심했다

728x90
728x90

기본형은 런플랫이 아니므로 스페어 타이어가 들어있는데
공간이 좁다보니...
어쩔 수 없이 빼기로 했다

일단 상판을 들어보면 좀 오른쪽으로 스페어타이어가 누워 있다
가운데에 차체와 연결해서 고정하는 부품이 있는데
일단 그것을 돌려서 뺀다

그 다음.
동그란 커버를 떼본다
고정장치는 없으니 그냥 들면 됨
안에 스티로폼으로 형태가 잡혀있고
교환용 부품들이 들어있다


일단 타이어를 빼려면 걸리적 거리는 하단 판을 뺀다
(계속 들고 있기 귀찮으므로)

빼고나니 시원하구만
차체에서 돌출된 부분이 타이어 높이에 맞아 고정이 되기 때문에 완쪽으로 타이어를 옮긴다


위에서 내려다 보니 타이어가 아랫쪽에 좀 들어가 있어서 그냥은 못뺀다
(아까 하단 판 빼길 잘했네)
위쪽이 약간 경사가 있어서
완쪽끝까지 민 다음
(기가 막히게 길이가 아승아슬하게 딱 맞네)
경사진면쪽으로 들어서 세운다

세우고 보면
두께는 좀 얇다...

그리고
타이어 뺀 김에
그 밑에 얇은 커버(?)가 있는데 그것을 빼보니
민낯(?)이 드러나네 ㅋ

스페어 타이어를 빼면 그 높이만큼의 여유공간이 더 생기니 좋네 ㅋ

텐트+매트+테이블+이불+의자....과연 다 들어 갈 것인가

728x90
728x90

4주걸린다는 에어박스가 주문 후 2주만에 왔다 ㅎㅎ


600w짜리 펌프도 같이 왔다


펌프에 in , out이 조금 헤깔리는데
바람의 방향으로 in, out을 확인하면 된다
시행착오 몇 번이면 익숙해짐

처음에 땡땡하게 넣었는데
테스트로 집안에서 한번 자 본 결과
허리아프다.. ㅡ.ㅡ

그리고 반바지로 이리 뒹굴 저리뒹굴했더니...

자동 제모...
따끔따끔하더니 다리털이 뽑힌다

커버 사는 이유를 알겠다.
결국 긴 츄리닝으로 갈아입음

펌프를 쓰니 바람이 금방 넣고 금방 빠진다.

200 ×240인데 텐트 크기에는 맞는데 집안에 펼치니...
좀 크네. 퀸사이즈보다 크네

무게는 좀 있다
높이 40cm짜리는 너~무 높은 것 같다
20cm짜리도 계단을오르내리는 느낌

다음날 바람을 좀 빼서 발이 좀 빠지는 듯하게 했더니
누워도 좀 편하네

결론
높이는 15도 괜찮을 것 같고
커버 필요하고
바람은 땡땡하게 넣은 뒤 좀 빼줘야 편히 질 수 있음


728x90
728x90

구름 IDE에서 영카트 설치하는 방법.

컨테이너에 php를 선택하면 되는데

github에 영카트 소스가 있기 때문에 github 주소를 이용하여

공개범위 : Private (Public 로 하면 git/svn 고르기가 안됨)
템플릿 : Git/SVN
   - TYPE : Git
   - REPOSITORY URL : github.com/gnuboard/youngcart5.git
   - 인증 : Anonymous (별도의 인증 필요없음)

Test버튼을 누르면 -> Success로 연결 됨.

소프트웨어 스택에서 PHP 선택

Mysql 설치에 체크하고 "컨테이너 생성"

 

생성이 되면

Young cart 소스가 이미 생성되어 있다
(연결 안했으면 앞으로 PHP 파일을 만들어 가면 된다)

 

서버를 가동해야 화면이 뜨는데

상단메뉴에서
프로젝트 - 실행 - 실행명령 추가 를 누르면

new run php 라는 탭이 생긴다.
'실행' 버튼을 눌러 서버를 가동시킨다.

가동완료되면 아래쪽에 명령탭에 시작되었다고 나온다.
server started at ...
Listening on ...
Press Ctrl-C to quit

서버를 가동시키지 않으면
프로젝트 - 실행 URL과 포트 에 실행용 URL 을 클릭했을 때( 아래 그림에서 빨간색 동그라미 버튼)

-- 서버가 실행중이지 않으면

 

-- 서버가 실행 중이면 그누보드 설치화면이 나온다.

그누보드5 설치하기 버튼을 누른다.

 

먼저 data라는 폴더하면
config.php가 위치한 곳에 data 디렉터리를 만들어 준다

mkdir data
cd data
ls 로 파일이 생성되었는지 확인

 

또는 프로젝트에서 추가버튼으로 폴더 추가, 파일 추가를 해도 된다.

 

그누보드 생성 진행

DB설정정보, 최고관리자 정보 입력

 

---

생성이 제대로 안되는 경우는 root 계정으로 시도한다.
root 계정 password 변경

alter user 'root'@'localhost' identified with mysql_native_password by '1111';

서버를 재가동한다.
new run php 탭에서 '종료'버튼 누른 후 다시 '시작' 버튼 클릭

 

728x90
728x90

Spring Security로 로그인을 구현할 때

기본 password는 BCryptPasswordEncoder 를 사용한다.

mysql의 password() 를 사용하여 password를 저장하는 경우에는 맞지 않기 때문에

MysqlPasswordEncoder를 만들어 적용한다.

--------------------

import java.security.GeneralSecurityException;
import java.security.MessageDigest;
import org.springframework.security.crypto.password.PasswordEncoder;

public class MySqlPasswordEncoder implements PasswordEncoder {
    @Override
    public String encode(CharSequence rawPassword) {
        if (rawPassword == null) {
            throw new NullPointerException();
        }
        byte[] bpara = new byte[rawPassword.length()];
        byte[] rethash;
        int i;

        for (i = 0; i < rawPassword.length(); i++)
            bpara[i] = (byte) (rawPassword.charAt(i) & 0xff);

        try {
            MessageDigest sha1er = MessageDigest.getInstance("SHA1");
            rethash = sha1er.digest(bpara); // stage1
            rethash = sha1er.digest(rethash); // stage2
        } catch (GeneralSecurityException e) {
            throw new RuntimeException(e);
        }

        StringBuffer r = new StringBuffer(41);
        r.append("*");

        for (i = 0; i < rethash.length; i++) {
            String x = Integer.toHexString(rethash[i] & 0xff).toUpperCase();
            if (x.length() < 2) r.append("0"); r.append(x);
        }
        return r.toString();
    }

    @Override
    public boolean matches(CharSequence rawPassword, String encodedPassword) {
        if (encodedPassword == null || rawPassword == null) { return false; }
        if (!encodedPassword.equals(encode(rawPassword))) { return false; }
        return true;
    }
}

-------------------

사용방법 : UserServiceImpl 등 login 처리를 하는 class에서

    @Autowired
    private BCryptPasswordEncoder passwordEncoder;
    
    @Autowired
    private MySqlPasswordEncoder mysqlPasswordEncoder;
...

//user.setPassword(passwordEncoder.encode(registration.getPassword())); user.setPassword(mysqlPasswordEncoder.encode(registration.getPassword()));

 

기존에 사용하던 BCryptPasswordEncoder 대신 MysqlPasswordEncoder 를 사용하면 됨.

728x90
BLOG main image
"그게 뭐 어쨌다는 거냐?" 늘 누가 나에게 나에대한 말을할 때면 이말을 기억해라. by nobang

카테고리

nobang이야기 (1951)
Life With Gopro (7)
Life With Mini (79)
Diary (971)
너 그거 아니(do you know) (179)
난 그래 (159)
Study (290)
속지말자 (10)
Project (34)
Poem (15)
Song (0)
Photo (113)
낙서장 (45)
일정 (0)
C.A.P.i (2)
PodCast (0)
nobang (27)
고한친구들 (4)
recieve (0)
History (0)
android_app (2)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :