이클립스 기본설정을 UTF-8 로 하는법

이클립스 모든 신규 프로젝트 출처: https://gangzzang.tistory.com/entry/이클립스-개발환경-UTF8-인코딩-설정
한 프로젝트만  출처: https://gangzzang.tistory.com/entry/이클립스Eclipse-한-프로젝트만-UTF8-설정?category=526617

 

 

츄르처 : https://bstar36.tistory.com/347

 

[Redis] 데이터 타입

1. 데이터 처리 명령어 1.1 문자열 데이터 처리 저장 가능한 문자열의 크기는 최대 512MB 이다. set, get 하나의 문자열을 저장하고 조회 한다. mset, mget 여러 개의 문자열을 저장하고 조회 한다. (Multi를 뜻하..

bstar36.tistory.com

1. 데이터 처리 명령어

   1.1 문자열 데이터 처리

        1) set, get 하나의 문자열을 저장하고 조회 한다. (~512M)
        2) 
mset, mget 여러 개의 문자열을 저장하고 조회 한다. (m = multi), (z = set , h = hash)
        3)
없는 데이터 조회 시에는 nil 리턴
        4) 
기존에 있는 key값을 입력하면 기존 값이 업데이트 된다.
           
만약 기존에 key값이 없으면 값을 세팅하고,
           key
값이 세팅 되어 있으면 새로운 값을 넣지 않는 로직을 구현하고자 한다면,
           
먼저 get으로 데이터를 조회 후에 set으로 데이터를 넣는 방법 밖에 .

set key value [EX seconds] [PX milliseconds] [NX|XX]

mset key value [key value ...]

get key

mget key [key ...]

127.0.0.1:6379> set test1 hi
OK

127.0.0.1:6379> set test2 Nice
OK

127.0.0.1:6379> set test3 to
OK

127.0.0.1:6379> set test4 meet
OK

127.0.0.1:6379> set test5 you
OK

127.0.0.1:6379> get test1
"hi"

127.0.0.1:6379> get test2
"Nice"

127.0.0.1:6379> get test3
"to"

127.0.0.1:6379> get test4
"meet"

127.0.0.1:6379> get test5
"you"

127.0.0.1:6379> get test6  <-- 없는 데이터 조회
(nil)

127.0.0.1:6379> set test1 youngjoon
OK

127.0.0.1:6379> get test1
"youngjoon"

127.0.0.1:6379> mset t1 hi t2 Nice t3 to t4 meet t5 you
OK

127.0.0.1:6379> mget t1 t2 t3 t4 t5
1) "hi"
2) "Nice"
3) "to"
4) "meet"
5) "you"

127.0.0.1:6379> mget t6   <-- 없는 데이터 조회
(nil)

 

 

 

 

 

 

 

 

 

 

 

 

        5) 여러 개의 데이터를 mget mset 하는 경우는 setnx / msetnx 명령(실패  경우 전체가 실패)를 이용
            key
값이 없어서 정상적으로 세팅이 되면 1, 실패 하면 0

127.0.0.1:6379> mset t1:v1 hi t1:v2 nice t1:v3 to t1:v4 meet t1:v5 you
OK

127.0.0.1:6379> mget t1:v1 t1:v2 t1:v3 t1:v4 t1:v5
1) "hi"
2) "nice"
3) "to"
4) "meet"
5) "you"

127.0.0.1:6379> mset t1:v5 youngjoon   <-- key 값이 업데이트 
OK

127.0.0.1:6379> mget  t1:v1 t1:v2 t1:v3 t1:v4 t1:v5
1) "hi"
2) "nice"
3) "to"
4) "meet"
5) "youngjoon"

127.0.0.1:6379> setnx t1:v5 sujin  <-- sujin로 key값을 설정 하려고 하는데 기존 키 값이 있어서
(integer) 0                             <-- 실패 (리턴값 = 0)

127.0.0.1:6379> mget  t1:v1 t1:v2 t1:v3 t1:v4 t1:v5
1) "hi"
2) "nice"
3) "to"
4) "meet"
5) "youngjoon"

127.0.0.1:6379> msetnx t1:v6 ! t1:v5 sujin  <-- t1:v6 key는 없지만 t1:v5 key값이 있으므로 실패
(integer) 0

127.0.0.1:6379> mget  t1:v1 t1:v2 t1:v3 t1:v4 t1:v5 t1:v6
1) "hi"
2) "nice"
3) "to"
4) "meet"
5) "youngjoon"
6) (nil)        <-- t1:v6 값이 없어서 nil 리턴

127.0.0.1:6379> msetnx t1:v6 !
(integer) 1    <- 성공하면 1 리턴

127.0.0.1:6379> mget  t1:v1 t1:v2 t1:v3 t1:v4 t1:v5 t1:v6
1) "hi"
2) "nice"
3) "to"
4) "meet"
5) "youngjoon"
6) "!"

        6) 기존에 key 있을 경우 업데이트를   이전 값을 리턴  주는 getset 명령어

127.0.0.1:6379> getset t1:v5 sujin
"youngjoon"

127.0.0.1:6379> get t1:v5
"sujin"

127.0.0.1:6379> getset t1:v7 Bye      <-- 이전 key 값이 존재 하지 않았으면 nil 값을 리턴
(nil)

        7) 문자열의 길이는 strlen 명령어를 이용한다.

127.0.0.1:6379> strlen t1:v5
(integer) 4

 

   1.2 숫자형 데이터 처리

        1) 숫자형 데이터에 대하여 값을 증가 시키거나 감소 시키는 incr, decr 명령어를 사용 (기본단위 1)
        2) 
명령어 뒤에 by 추가 하면 지정한 값으로  값을 증가시킴 ( incrby, decrby )

127.0.0.1:6379> mset t2:v1 1 t2:v2 0 t2:v3 -5
OK

127.0.0.1:6379> incr t2:v1
(integer) 2

127.0.0.1:6379> decr t2:v2
(integer) -1

127.0.0.1:6379> incrby t2:v3 3
(integer) -2

127.0.0.1:6379> incr t2:v4  <-- 없는 key인 t2:v4 값을 증가 시키니, key를 생성하고 1 값을 세팅
(integer) 1

127.0.0.1:6379> mget t2:v1 t2:v2 t2:v3 t2:v4
1) "2"
2) "-1"
3) "-2"
4) "1"

127.0.0.1:6379> decrby t2:v4 3      1 -   2 = -1
(integer) -2

127.0.0.1:6379> decrby t2:v4 -3    -2 - (-2) = 1
(integer) 1

 

   1.3 Bit 데이터 처리

        1) 비트 연산을 통해 저장되는 문자열 데이터를 비트 단위로 처리
        2) 
strlen 키에 저장된 문자열의 크기를 리턴 (문자열길이/8 +1)

setbit key offset value

getbit key offset

 

127.0.0.1:6379> setbit testbit 255 1     <-- testbit key의 255번째 자리에 1 값을 설정
(integer) 0

127.0.0.1:6379> setbit testbit 260 0     <-- testbit key의 260번째 자리에 0 값을 설정
(integer) 0

127.0.0.1:6379> getbit testbit 255
(integer) 1

127.0.0.1:6379> getbit testbit 260
(integer) 0

127.0.0.1:6379> getbit testbit 259       <-- 설정 되지 않은 key값은 0을 반환 
(integer) 0

127.0.0.1:6379> strlen testbit           testbit key에 저장된 문자열의 길이를 반환
(integer) 33

127.0.0.1:6379> setbit testbit 400 1
(integer) 0

127.0.0.1:6379> getbit testbit 400
(integer) 1

127.0.0.1:6379> strlen testbit
(integer) 51

127.0.0.1:6379> setbit testbit 401 a    0/1 이 아닌 다른 값을 입력하면 에러
(error) ERR bit is not an integer or out of range

 

        3) bitcount 명령은 비트가 1 설정  것만 카운트

127.0.0.1:6379> bitcount testbit
(integer) 2

 

   1.4 Hash 데이터 처리 ( = database의 table과 비슷 )

        1) 해시 데이터는 문자열 필드와 값의  구조로, 테이블과 가장 유사 (2^32 -1필드&값 저장)
        2) key
 하나가 여러개의 필드-값의 조합으로 이루어 진다.
           
key --- field1---value1
               
 --- field2---valeu2
               
 --- field3---value3

hset key field value  필드 추가       

hmset key field value [field value ...]  여러 개의 필드 추가

hget key field   피드  조회

hmget key field [field ...]  여러 개의 필드  조회

hlen key  필드 개수 조회

hgetall key  모든 필드 명과  조회

hkeys key   필드 명만 조회

hvals key   필드 명을 제회한 전체 값만 조회

 

hincrby key field increment       필드 값이 숫자일 경우 , (해당 필드가 없을 경우 생성 하고 값을 추가 )

hincrbyfloat key field increment  필드 값이 숫자일 경우 , (해당 필드가 없을 경우 생성 하고 값을 추가 )

 

127.0.0.1:6379> hmset bstar:info name ""  Birth 1975.01.11 Sex M Region Seoul RegDate 2017.10.03
OK

127.0.0.1:6379> hlen bstar:info                  <-- 키에 들어있는 필드 개수 리턴
(integer) 5

 

127.0.0.1:6379> hmget bstar:info name Birth  
1) "\xec\xb5\x9c\xec\x98\x81\xec\xa4\x80"
2) "1975.01.11"

127.0.0.1:6379>hmget bstar:info name Birth Sex Region RegDate
1) "\xec\xb5\x9c\xec\x98\x81\xec\xa4\x80"
2) "1975.01.11"
3) "M"
4) "Seoul"
5) "2017.10.03"

127.0.0.1:6379> hset bstar:info Sex F
(integer) 0

127.0.0.1:6379>hmget bstar:info name Birth Sex Region RegDate
1) "\xec\xb5\x9c\xec\x98\x81\xec\xa4\x80"
2) "1975.01.11"
3) "F"
4) "Seoul"
5) "2017.10.03"

127.0.0.1:6379> hsetnx bstar:info Sex M     <-- Sex 필드가 존재 하므로 에러 발생
(integer) 0

127.0.0.1:6379> hmget bstar:info name Birth Sex Region RegDate
1) "\xec\xb5\x9c\xec\x98\x81\xec\xa4\x80"
2) "1975.01.11"
3) "F"
4) "Seoul"
5) "2017.10.03"

127.0.0.1:6379> hdel bstar:info Birth     <-- Birth 필드 삭제
(integer) 1

127.0.0.1:6379> hmget bstar:info name Birth Sex Region RegDate
1) "\xec\xb5\x9c\xec\x98\x81\xec\xa4\x80"
2) (nil)
3) "F"
4) "Seoul"
5) "2017.10.03"

127.0.0.1:6379> hlen bstar:info
(integer) 4

127.0.0.1:6379> hincrby bstar:info LoginCnt 1  <-- 없는 Field LoginCnt가 추가 되므로 필드가 추가되고 값이 추가됨
(integer) 1

127.0.0.1:6379> hmget bstar:info name Birth Sex Region RegDate LoginCnt
1) "\xec\xb5\x9c\xec\x98\x81\xec\xa4\x80"
2) (nil)
3) "F"
4) "Seoul"
5) "2017.10.03"
6) "1"

127.0.0.1:6379> hincrbyfloat bstar:info LoginCnt 1.5
"2.5"

127.0.0.1:6379> hmget bstar:info name Birth Sex Region RegDate LoginCnt
1) "\xec\xb5\x9c\xec\x98\x81\xec\xa4\x80"
2) (nil)
3) "F"
4) "Seoul"
5) "2017.10.03"
6) "2.5"

127.0.0.1:6379> hincrbyfloat bstar:info LoginCnt -1    <-- 정수를 사용해도 됨
"1.5"

127.0.0.1:6379> hmget bstar:info name Birth Sex Region RegDate LoginCnt
1) "\xec\xb5\x9c\xec\x98\x81\xec\xa4\x80"
2) (nil)
3) "F"
4) "Seoul"
5) "2017.10.03"
6) "1.5"

127.0.0.1:6379> hgetall bstar:info
 1) "name"
 2) "\xec\xb5\x9c\xec\x98\x81\xec\xa4\x80"
 3) "Sex"
 4) "F"
 5) "Region"
 6) "Seoul"
 7) "RegDate"
 8) "2017.10.03"
 9) "LoginCnt"
10) "1.5"

127.0.0.1:6379> hkeys bstar:info    <-- 해시테이블에 있는 필드 명 조회
1) "name"
2) "Sex"
3) "Region"
4) "RegDate"
5) "LoginCnt"

127.0.0.1:6379> hvals bstar:info   <-- 해시테이블에 있는 값 조회
1) "\xec\xb5\x9c\xec\x98\x81\xec\xa4\x80"
2) "F"
3) "Seoul"
4) "2017.10.03"
5) "1.5"

 

   1.5 SET 데이터 처리 ( = java의 List와 비슷 )

        1) 중복을 허용하지 않는 집합 형태의 자료 구조, 정렬되어 있지 않다. (2^32 -1  저장)
           정렬되어질 필요가 있을 경우 SORTED SET 사용
           값이 중복되어 저장되지 않으므로 nx 접미사의 명령어가 필요 없음
        2) 
SET 데이터는 하나의 Key 여러 개의 (member) 저장되며집합 연산이 가능

집합 연산은 합집합(Sunion), 교집합(Sinter), 차집합(Sdiff) 

sadd key member [member ...]     Key Value 추가 (추가 성공  1 리턴)

smembers key                     Key 들어있는 값을 모두 조회 

srem key member [member ...]     Key에서 Value 삭제(삭제 성공  1 리턴)

scard key                        key 들어 있는 value 개수 조회 (card  Cardinality 약어)

spop key [count]                 들어 있는 value 추출하고 삭제 한다.

sismember key member             Value 조회 하는 값이 있으면 1 리턴 하고, 없으면 0 리턴 

 

sunion key [key ...]             합집합

sinter key [key ...]             교집합

sdiff key [key ...]              차집합

 

SET 타입 문자열 비교

127.0.0.1:6379> sadd Test:Info:Site 'www.naver.com' 'www.google.com' 'www.daum.net' 'www.korea.com'
(integer) 4

127.0.0.1:6379> smembers Test:Info:Site
1) "www.naver.com"
2) "www.daum.net"
3) "www.korea.com"
4) "www.google.com"

127.0.0.1:6379> sismember Test:Info:Site 'www.naver*'   (일치하는 문자열 검색/ 없으면 0 있으면 1)
(integer) 0

127.0.0.1:6379> sismember Test:Info:Site 'www.naver.com'
(integer) 1

127.0.0.1:6379> sscan Test:Info:Site 0 match '*naver*'  (Like 검색 )
1) "0"
2) 1) "www.naver.com"

127.0.0.1:6379> sscan Test:Info:Site 0 match '*com*'
1) "0"
2) 1) "www.naver.com"
   2) "www.korea.com"
   3) "www.google.com"

 

127.0.0.1:6379> sadd bstar:Url google.com naver.com champstudy.com pass.com daum.net
(integer) 0

127.0.0.1:6379> smembers bstar:Url
1) "google.com"
2) "champstudy.com"
3) "daum.net"
4) "naver.com"
5) "pass.com"

127.0.0.1:6379> scard bstar:Url
(integer) 5

127.0.0.1:6379> sadd content1:Url champstudy.com
(integer) 0

127.0.0.1:6379> sadd content1:Url daum.net
(integer) 0

127.0.0.1:6379> scard content1:Url
(integer) 2

127.0.0.1:6379> sinter bstar:Url content1:Url
1) "champstudy.com"
2) "daum.net"

127.0.0.1:6379> sunion bstar:Url content1:Url
1) "pass.com"
2) "champstudy.com"
3) "google.com"
4) "daum.net"
5) "naver.com"

127.0.0.1:6379> sdiff bstar:Url content1:Url
1) "google.com"
2) "naver.com"
3) "pass.com"

127.0.0.1:6379> sdiff  content1:Url bstar:Url
(empty list or set)

127.0.0.1:6379> srem bstar:Url daum.net
(integer) 1

127.0.0.1:6379> scard bstar:Url
(integer) 4

127.0.0.1:6379> sinter bstar:Url content1:Url
1) "champstudy.com"

127.0.0.1:6379> sadd bstar:Url google.com naver.com champstudy.com pass.com daum.net
(integer) 5

127.0.0.1:6379> spop bstar:Url 4     <--- bstar:Url에서 4개의 값을 보여주고 삭제
1) "naver.com"
2) "pass.com"
3) "champstudy.com"
4) "google.com"

127.0.0.1:6379> scard bstar:Url
(integer) 1

127.0.0.1:6379> spop bstar:Url 4     <-- 4개의 값을 빼서 보여줘야 하는데 1개 밖에 남아 있지 않음
1) "daum.net"

127.0.0.1:6379> scard bstar:Url
(integer) 0

127.0.0.1:6379> sadd bstar:Url google.com naver.com champstudy.com pass.com daum.net
(integer) 5

127.0.0.1:6379> spop bstar:Url 2
1) "daum.net"
2) "google.com"

127.0.0.1:6379> spop bstar:Url 2
1) "pass.com"
2) "naver.com"

127.0.0.1:6379> spop bstar:Url 2
1) "champstudy.com"

127.0.0.1:6379> spop bstar:Url 2
(empty list or set)

127.0.0.1:6379> sadd bstar:Url google.com naver.com champstudy.com pass.com daum.net
(integer) 5

127.0.0.1:6379> sismember bstar:Url google.com
(integer) 1

127.0.0.1:6379> sismember bstar:Url google.co.kr
(integer) 0

127.0.0.1:6379> sismember bstar:Url google
(integer) 0

 

   1.6 SORTED SET 데이터 처리

        1) 정렬된 SET 데이터로써 가중치를 줘서 정렬접두사로 z 사용한다. (z = sorted)
        2) 
기본 정렬은 오름차순 정렬(zrange) 이고, 내림차순 정렬(zrevrange)도 있음
        3) 
WITHSCORES 명령어를 함께 사용하면 가중치 값도 같이 조회   있다.

zadd key [NX|XX] [CH] [INCR] score member [score member ...]    value 추가

zrevrange key start stop [WITHSCORES]                           내림차순 정렬

zrange key start stop [WITHSCORES]                              오름차순 정렬

zincrby key increment member                                    해당 멤버의 가중치  증감

zscore key member                                               해당 멤버의 가중치  조회

zrank key member                                                해당 멤버의 오름차순 순서

zrevrank key member                                             해당 멤버의 내림차순 순서

 

127.0.0.1:6379> zadd SsetTest 1 value1 3 value3 5 value5
(integer) 3

127.0.0.1:6379> zrange SsetTest 1 100     1 < 가중치 <= 100 오름차순 조회
1) "value3"
2) "value5"

127.0.0.1:6379> zrange SsetTest 1 100 withscores   가중치 정보 까지 조회
1) "value3"
2) "3"
3) "value5"
4) "5"

127.0.0.1:6379> zrevrange SsetTest 1 100           내림차순 조회
1) "value3"
2) "value1"

127.0.0.1:6379> zrevrange SsetTest 1 100 withscores
1) "value3"
2) "3"
3) "value1"
4) "1"

127.0.0.1:6379> zadd SsetTest 10 value5  <--- value5의 가중치를 10으로 변경
(integer) 0

127.0.0.1:6379> zrange SsetTest 0 10 withscores
1) "value1"
2) "1"
3) "value3"
4) "3"
5) "value5"
6) "10"

127.0.0.1:6379> zincrby SsetTest 1 value5
"11"

127.0.0.1:6379> zrank SsetTest value1
(integer) 0

127.0.0.1:6379> zrank SsetTest value3
(integer) 1

127.0.0.1:6379> zrank SsetTest value5
(integer) 2

127.0.0.1:6379> zrevrank SsetTest value5
(integer) 0

127.0.0.1:6379> zrevrank SsetTest value3
(integer) 1

127.0.0.1:6379> zrevrank SsetTest value1
(integer) 2

 

--[ Sorted Set을 이용한 성적 관리  (국어 성적/영어 성적) ]-----------------------------------------------

127.0.0.1:6379> zadd Class1:Korean 80 criss 95 hana 100 joon 100 young 90 Dong 85 hyun 70 Kim
(integer) 7

127.0.0.1:6379> zadd Class1:English 92 criss 100 hana 70 joon 92 young 80 Dong 90 hyun 90 Kim
(integer) 7

--[ criss의 국어와 영어 성적 조회 ]--------------------------------------------------------------------------

127.0.0.1:6379> zscore Class1:Korean criss
"80"

127.0.0.1:6379> zscore Class1:English criss
"92"

--[ criss의 국어/영어 성적 등수 ]----------------------------------------------------------------------------

127.0.0.1:6379> zrevrank Class1:Korean criss
(integer) 5

127.0.0.1:6379> zrevrank Class1:English criss
(integer) 2

--[ 국어 성적이 90점 이상 인 학생들 확인 ]----------------------------------------------------------------

127.0.0.1:6379> zrevrangebyscore Class1:Korean 100 90
1) "young"
2) "joon"
3) "hana"
4) "Dong"

127.0.0.1:6379> zrevrangebyscore Class1:Korean 100 90 withscores
1) "young"
2) "100"
3) "joon"
4) "100"
5) "hana"
6) "95"
7) "Dong"
8) "90"

 

   1.7 LIST 데이터 처리

        1) 저장된 순서를 기억하는 데이터 구조로, 중복을 허용 (저장 가능한 값은 2^32 =  42억개)
        2) 
헤드는 리스트의 첫번  요소 이며, 테일은 리스트의 마지막 요소
        3) 
데이터를 넣을  왼쪽으로 넣을지 오른쪽으로 넣을지에 따라서 lpush(Left Push), rpush(Right Push)명령사용
            stack 
= 먼저 들어간 것이 제일 마지막에 처리되며제일 마지막에 입력  것이 제일 먼저 처리
            queue = 
입력과 출력 방향이 달라서 보통 말하는 선입 선출
            deck = 
LIST 데이터는 입력도 양쪽으로 가능하고출력도 양쪽으로 가능한 구조
        4) 
입력은 push, 출력은 pop이다. 왼쪽 = "l", 오른쪽 = "r"  접두사
        5) 
pop 명령은 해당 데이터를 조회 하면서 제거 한다.

127.0.0.1:6379> lpush List:test value1 value2 value3 value4
(integer) 4

127.0.0.1:6379> rpush List:test value8 value7 value6 value5
(integer) 8

데이터가 들어가는 순서는
value4 --> value3 --> value2 --> value1 --> 순으로 왼쪽에서 들어가, 마지막에 들어가는 value4 제일 왼쪽의 데이터

<-- value8 <-- value7 <-- value6 <-- value5 순으로 오른쪽에서 들어가, 마지막에 들어가서
제일 오른쪽에 위치하는 값은 value5 된다.

127.0.0.1:6379> lindex List:test 0
"value4"

127.0.0.1:6379> lindex List:test 1
"value3"

127.0.0.1:6379> lindex List:test 2
"value2"

127.0.0.1:6379> lindex List:test 3
"value1"

127.0.0.1:6379> lindex List:test 4
"value8"

127.0.0.1:6379> lindex List:test 5
"value7"

127.0.0.1:6379> lindex List:test 6
"value6"

127.0.0.1:6379> lindex List:test 7
"value5"

127.0.0.1:6379> lindex List:test 8
(nil)

127.0.0.1:6379> lindex List:test -1
"value5"

127.0.0.1:6379> rpop List:test       <-- 가장 오른쪽에 있는 값을 조회
"value5"

127.0.0.1:6379> lindex List:test 7   <-- 조회한 데이터가 없어
(nil)

127.0.0.1:6379> rpop List:test 6    <-- 해당 인덱스의 값을 조회
1) "List:test"
2) "value6"

127.0.0.1:6379> lindex List:test 6
(nil)

127.0.0.1:6379> lrange List:test 0 10  <-- 해당 리스트의 값을 조회 0-10번 인덱스 까지 조회
1) "value4"
2) "value3"
3) "value2"
4) "value1"
5) "value8"
6) "value7"

 

multi gragleをsingleで割合後、tomcat起動ができなくなりました。

Startメニュー押下!

そのローグ

4월 10, 2019 10:19:27 오전 org.apache.tomcat.util.digester.SetPropertiesRule begin
경고: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:trading.DonzBox.com' did not find a matching property.
4월 10, 2019 10:19:27 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: Server version:        Apache Tomcat/8.5.24
4월 10, 2019 10:19:27 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: Server built:          Nov 27 2017 13:05:30 UTC
4월 10, 2019 10:19:27 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: Server number:         8.5.24.0
4월 10, 2019 10:19:27 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: OS Name:               Windows 10
4월 10, 2019 10:19:27 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: OS Version:            10.0
4월 10, 2019 10:19:27 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: Architecture:          amd64
4월 10, 2019 10:19:27 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: Java Home:             C:\Program Files\Java\jre1.8.0_181
4월 10, 2019 10:19:27 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: JVM Version:           1.8.0_181-b13
4월 10, 2019 10:19:27 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: JVM Vendor:            Oracle Corporation
4월 10, 2019 10:19:27 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: CATALINA_BASE:         D:\My Data\WWW\App Source\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
4월 10, 2019 10:19:27 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: CATALINA_HOME:         D:\My Data\WWW\Web Service\apache-tomcat-8.5.24
4월 10, 2019 10:19:27 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: Command line argument: -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:13001
4월 10, 2019 10:19:27 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: Command line argument: -javaagent:D:\My Data\eclips\eclipse 2019-03-R\configuration\org.eclipse.osgi\409\0\.cp\lib\javaagent-shaded.jar
4월 10, 2019 10:19:27 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: Command line argument: -Dcatalina.base=D:\My Data\WWW\App Source\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
4월 10, 2019 10:19:27 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: Command line argument: -Dcatalina.home=D:\My Data\WWW\Web Service\apache-tomcat-8.5.24
4월 10, 2019 10:19:27 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: Command line argument: -Dwtp.deploy=D:\My Data\WWW\App Source\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
4월 10, 2019 10:19:27 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: Command line argument: -Djava.endorsed.dirs=D:\My Data\WWW\Web Service\apache-tomcat-8.5.24\endorsed
4월 10, 2019 10:19:27 오전 org.apache.catalina.startup.VersionLoggerListener log
정보: Command line argument: -Dfile.encoding=UTF-8
4월 10, 2019 10:19:27 오전 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
정보: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\Program Files\Java\jre1.8.0_181\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre1.8.0_181/bin/server;C:/Program Files/Java/jre1.8.0_181/bin;C:/Program Files/Java/jre1.8.0_181/lib/amd64;%SystemRoot%\system32\WBEM;C:\WINDOWS\system32\WBEM;C:\WINDOWS\system32\WBEM;C:\WINDOWS\system32\WBEM;C:\WINDOWS\system32\WBEM;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;D:\My Data\WWW\Build Factory\VisualSVN Server Enterprise 3.6.0\bin;C:\Program Files\PuTTY\;C:\WINDOWS\System32\OpenSSH\;C:\Python27;C:\Python27\Scripts;C:\Ruby25-x64\bin;C:\Program Files\Git\cmd;C:\Users\Donz\AppData\Local\Microsoft\WindowsApps;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Ruby25-x64\bin;C:\Users\Donz\AppData\Local\Microsoft\WindowsApps;;D:\My Data\eclips\eclipse 2019-03-R;;.]
4월 10, 2019 10:19:27 오전 org.apache.coyote.AbstractProtocol init
정보: Initializing ProtocolHandler ["http-nio-XXXX"]
4월 10, 2019 10:19:28 오전 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
정보: Using a shared selector for servlet write/read
4월 10, 2019 10:19:28 오전 org.apache.coyote.AbstractProtocol init
정보: Initializing ProtocolHandler ["https-jsse-nio-XXXX"]
4월 10, 2019 10:19:28 오전 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
정보: Using a shared selector for servlet write/read
4월 10, 2019 10:19:28 오전 org.apache.coyote.AbstractProtocol init
정보: Initializing ProtocolHandler ["ajp-nio-XXXX"]
4월 10, 2019 10:19:28 오전 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
정보: Using a shared selector for servlet write/read
4월 10, 2019 10:19:28 오전 org.apache.catalina.startup.Catalina load
정보: Initialization processed in 2880 ms
4월 10, 2019 10:19:28 오전 org.apache.catalina.core.StandardService startInternal
정보: Starting service [Catalina]
4월 10, 2019 10:19:28 오전 org.apache.catalina.core.StandardEngine startInternal
정보: Starting Servlet Engine: Apache Tomcat/8.5.24
4월 10, 2019 10:19:29 오전 org.apache.jasper.servlet.TldScanner scanJars
정보: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
4월 10, 2019 10:19:37 오전 org.apache.jasper.servlet.TldScanner scanJars
정보: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
4월 10, 2019 10:19:37 오전 org.apache.catalina.core.ApplicationContext log
정보: 2 Spring WebApplicationInitializers detected on classpath                                                                             

あら?ローグはここまで?そしてこんなエラーが出た!

何の情報もないでデバッグは不可能!

Googlingでは色んな解決方があったんですが、私の場合はこんなことでした。

application.properties

spring.profiles.active=localPc

localPc != localPC

 

____Application.java の run メソッドにbreak point掛けて

eclipse plugin の Spring Boot App で起動したらデバッグが可能になりました。

org.springframework.boot.devtools.restart.RestartLauncherのrun()を実行した後もう以上進まなしで止まるけど、

/*
 * Copyright 2012-2015 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.boot.devtools.restart;

import java.lang.reflect.Method;

/**
 * Thread used to launch a restarted application.
 *
 * @author Phillip Webb
 */
class RestartLauncher extends Thread {

private final String mainClassName;

private final String[] args;

private Throwable error;

RestartLauncher(ClassLoader classLoader, String mainClassName, String[] args,
UncaughtExceptionHandler exceptionHandler) {
this.mainClassName = mainClassName;
this.args = args;
setName("restartedMain");
setUncaughtExceptionHandler(exceptionHandler);
setDaemon(false);
setContextClassLoader(classLoader);
}

@Override
public void run() {
try {
Class<?> mainClass = getContextClassLoader().loadClass(this.mainClassName);
Method mainMethod = mainClass.getDeclaredMethod("main", String[].class);
mainMethod.invoke(null, new Object[] { this.args });
}
catch (Throwable ex) {
this.error = ex;
getUncaughtExceptionHandler().uncaughtException(this, ex);
}
}

public Throwable getError() {
return this.error;
}

}

どんな理由で止まったかは分からないで、ただ

環境設定パラメータの大文字小文字が一致しなかったから起動中中止されました。しか分からない状態です。

어쨌든

application.properties 의  spring.profiles.active=localPc

부분을  spring.profiles.active=localPC

로 고쳐주고

project clean, tomcat clean 을 해주고

package explorer 의 project 에서 우클릭 후 Project Facets 에 버전을 맞춰주고

왼쪽 tab의 Runtimes 에 tomcat 에서 설정한 trading 를 선택한 후

다시 기동해 보니 정상적으로 동작하였다.

1. Spring Boot App 실행 (정상기동되어야 함)

2. Servers 탭의 해당 프로젝트 우클릭 후 Tomcat 의 Modules 탭의 Path 를 코딩에서 원하는 Path로 맞춰!
   나의 경우는 / 였음

3. Spring Boot App 으로는 기동이 잘 되는데, Tomcat로 기동이 안된다면 Server를 지웠다가 다시 설정해 보자.

왜 그런지는 당췌 알 수가 없네........

중국에서 facebook 하고 싶을때, 한국의 윈도우 컴퓨터에 아래와 같이 설치하면 됨

(참고: https://github.com/shadowsocks/shadowsocks/wiki/Install-Shadowsocks-Server-on-Windows)


재료일람

 파일명 다운로드 url

 Win64OpenSSL-1_1_1b.msi

 https://slproweb.com/products/Win32OpenSSL.html (Win64 OpenSSL v1.1.1b)

 python-2.7.16.amd64.msi

 https://www.python.org/downloads/windows (Download Windows x86-64 MSI installer)

 Shadowsocks.exe

 https://github.com/shadowsocks/shadowsocks-windows/releases (Shadowsocks-4.1.4.zip)


---[ 한국 윈도우 컴을 서버로 설정하기 ]------------------------------------------------

01. 디폴트 디렉토리로 깔아야 함

    Win64OpenSSL-1_1_1b.msi


02. 디폴트 디렉토리로 깔아야 함

    python-2.7.16.amd64.msi


03. 환경변수 path 추가

    C:\Python27;C:\Python27\Scripts;


04. cmd 닫고 다시 열어 환경변수 적용되게 함


05. cmd 에 이하 실행

    pip install shadowsocks


06. C:\Python27\Scripts\shadowsocks.json 파일을 아래의 내용으로 생성

{

    "server":"0.0.0.0",

    "server_port":8388,

    "local_port":1080,

    "password":"your_password",

    "timeout":300,

    "method":"rc4-md5",

    "fast_open": false


07. 방화벽 설정

     C:\Python27\python.exe 에 대하여 모든포드 개방


08. cmd 에 이하 실행


    ssserver -c C:\Python27\Scripts\shadowsocks.json

    --- 실행된 정상 log ---

    INFO: loading config from C:\Python27\Scripts\shadowsocks.json

    2019-03-06 01:43:23 WARNING  warning: server set to listen on 127.0.0.1:8388, are you sure?

    2019-03-06 01:43:24 INFO     loading libcrypto from C:\WINDOWS\system32\libcrypto.dll

    2019-03-06 01:43:24 INFO     starting server at 127.0.0.1:8388


09. 기동확인


C:\Python27\Scripts>netstat -ano | findstr 8388

  TCP    0.0.0.0:8388           0.0.0.0:0         LISTENING       16940
  UDP    0.0.0.0:8388           *:*                                    16940 


C:\Python27\Scripts>tasklist /FI "PID eq 16940"

이미지 이름                    PID 세션 이름              세션#  메모리 사용
========================= ======== ================ =========== ============
python.exe                   16940                            1      6,488 K



---[ 중국 윈도우 컴에서 뚫기 ]------------------------------------------------

08. Shadowsocks.exe 실행

    Add ->

    Server Addr : DonzBox.com

    Server Port : 8388

    Password    : your_password

    -> OK

09. 윈도우 오른쪽 밑에 타스크 바에 있는 비행기 오른클릭 후

    1) Enable System Proxy 활성화

    2) Mode -> Global 선택

    3) 회색 비행기가 파란색 비행기로 된거 확인


클라이언트 접속테스트 (아이폰app : ShadowLink)


 중국에서 한국서버로

한국에서 한국서버로

 

 



망한거 같아 여기다 메뉴얼 올림 (현관문 도어락 STRONG_사용설명서.PDF)

본사 : 경기도 안양시 동안구 관양동 799 (안양메가벨리 407호)

전화 : 031-420-8925

A/S : 1588-8506

FAX : 031-420-8933

홈피 : http://www.icops.co.kr


출처 | http://mainichibenkyo.tistory.com/m/328?category=639757

Window > Preferences > Spring > Dashboard에서 New Feed Updates의 체크를 해제하고 하단의 URL을 삭제

디컴파일러가 설치가 안될때  설치법 (출처 | https://yg-dad.tistory.com/169)

개요

이클립스메뉴 - Hell프 - 이클립스 마켓플레이스 - 검색(검색어:  decompiler) - 조회결과(Enhanced Class Decompiler 3.1.1) 을 설치해도 동작하지 않음

때문에 이하의 방법으로 진행 (STS 3.8.3 에서 적용해봄)


1. download

 jad.exe

 http://varaneckas.com/jad/

 net.sf.jadclipse_3.3.0.jar

 http://sourceforge.net/projects/jadclipse/


2. 복사

너의이클립스\plugins\net.sf.jadclipse_3.3.0.jar


3. 설정

01단계 : 이클립스 껏다 켜

02단계 : 이클립스메뉴 - 윈도우 - 프리퍼런스 - java - jadClipse ->

 Path to decompiler:

 jad.exe가 있는 위치 (jad.exe 파일까지 써줘야 함)

 Directory for temporary files:

기본적으로 설정되어 있음 (디렉토리는 대로 맘대로)


03단계 : 이클립스메뉴 - 윈도우 - 프리퍼런스 - General - Editors - File Associations ->

 *.class

 JadClass Class File Viewer (default) 로 설정

 *.class with out source

  JadClass Class File Viewer (default) 를 추가하여 설정


잘대? 응 잘대!

티구안휴즈.htm

티구안휴즈.html.zip

DIY

http://memolog.blog.naver.com/PostView.nhn?blogId=heewank&logNo=220401006354&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postList


 

 

 

 

 

 

운영중인 apache & tomcat 에 추가로 사이트를 넣기 위한 작업을 까먹기 전에 정리

01. 사용중인 포트 및 포트를 사용하는 프로그램 검색

D:\My Data\WWW\Web Service\apache-tomcat-8.5.24\bin>netstat -ano | findstr 8080

  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       6876

  TCP    [::]:8080              [::]:0                 LISTENING       6876


D:\My Data\WWW\Web Service\apache-tomcat-8.5.24\bin>tasklist /FI "PID eq 6876"


이미지 이름                    PID 세션 이름              세션#  메모리 사용

========================= ======== ================ =========== ============

java.exe                      6876 Services                   0    852,880 K


02. 추가하려는 사이트의 설정값은 이곳에 추가

 apache

 workers.properties

 jkMount 로 사용할 변수 추가

 

 httpd-vhosts.conf

 vhost 설정 (workers.properties 값을 참조함)

 tomcat

 server.xml

 <host /> 추가

 

 apache-tomcat\conf\Catalina

 vhost로 설정한 값과 같은 디렉토리 추가
 디렉토리 밑에 ROOT.xml 추가 내용은 이하와 같음

 <?xml version="1.0" encoding="utf-8"?>
 <Context crossContext="true" docBase="." privileged="true" reloadable="true" />

 jenkins

 신규 war 파일 설정

 spring에 의해 생성된 war 파일을 tomcat의 webapps 밑으로 가게 설정



팀원님들이 이클립스로 개발을 시작한다면 다함께 이하와 같이 설정을 하고 시작하자, 제발요


* 체크 외에 나머진 체크해제

■ Windows -> Prefrences > Java > Editor > Save Actions

    √ Perform the selected actions on save

    √ Organize imports

    √ Additional actions


■ Configure 클릭

  ▶ Code Organizing 탭

    √ Remove trailing whitespace

    √ Correct identation

  ▶ Code Style 탭

    √ Use blocks in if/while/for/do statements (단일 if 문에 강제 block 생성)

    √ Use modifier 'final' where possible

     - √ Parameter (Private fields, Local variables is uncheck)

  ▶ Unnecessary Code 탭

    √ Remove unused imports

    √ Remove unnecessary casts

    √ Remove redundant type arguments (1.7 or higher)

   

설정파일 링크 :  org.eclipse.jdt.ui.prefs

해당 파일을 <workspace 폴더>\.metadata\.plugins\org.eclipse.core.runtime\.settings\  에 복사(덮어쓰기)

+ Recent posts