apache의 HttpClient를 사용할 때 요청에 대한 응답시 content-length 설정방법에 대해 기록차원에서 간단히 적어 본다. HttpResponse에서 Conents-length를 헤더에 넣어줘야 할 경우,BufferedReader를 이용하여 읽을 수 있는 Content의 길이를 읽어들여 처리를 해 본 코드.(mark(), reset() 을 이용하여 처리)BufferedInputStream bis = null; try { bis = new BufferedInputStream(entity.getContent()); int length = 0; logger.debug("\n\n ====111111 in.available["+ length +"] ====\n\n"); bis.mark(0); w..
현재 netty3.8.0_final을 사용 중에 있는데, netty에서 Bootstrap 생성, 설정 한 후, connect() 를 하고 동기식으로 다음 로직을 실행할 때원래는 외부에 connect()의 결과를 리턴 해 주기 위해 아래처럼 await 관련 메소드를 썼었는데, 이럴 경우, 하나의 프로그램에서 여러 netty클라이언트를 사용해서 처리할 경우, dead lock이 걸릴 수도 있다는 예외(?)를 netty가 친절(?)하게 알려 준다. ㅜㅜ;// Wait until the connection attempt succeeds or fails.ChannelFuture future = bootstrap.connect(new InetSocketAddress(host, port));channel = futu..
jedis 사용시 여러 스레드에서 동시에 jedis.exist() 를 호출할 경우, 아래의 예외가 간헐적으로 발생..java.lang.ClassCastException: [B cannot be cast to java.lang.Long at redis.clients.jedis.Connection.getIntegerReply(Connection.java:188) at redis.clients.jedis.Jedis.exists(Jedis.java:93) at boazcmt.tip.common.cache.JedisFactory.getCache(JedisFactory.java:74) jedis git(https://github.com/xetorthio/jedis)에 가 보니 2.2.x 버전에서는 버그가 해결되었다..
POST로 요청은 하되 쿼리스트링 형식으로 파라미터를 보내지 않고 body에 json형태로 요청을 할 때는 아래와 같이 하면 된다. 음.. 역시나 내 코드는 조잡하다. ㅜㅜ;(HttpClient 4.3.1) HttpClient client = new DefaultHttpClient();// HttpClient 4.3.x 에서는 new DefaultHttpClient()은 deprecated 되었다고 이클립스에서 친절(?)하게 알려준다. 그냥 가볍게 무시해도 되지만 영 찜찜하다면 아래처럼 하면 된다.HttpClient client = HttpClientBuilder.create().build(); String url = "http://"+ tipIp +":"+ tipPort +"/get/serverinfo..
개발자로서 공감가는 슬라이드~!![원문] http://www.infoworld.com/slideshow/129821/the-15-worst-ways-kill-programming-productivity-231450?source=ifwsotd#slide1 뭐 다 하나같이 공감이 감~ 음 나에게도 해당되는 것도 좀 있고.. ㅋㅋ 1. 회의(Meeting)2. 모든 메일에 답장하기(Reply all emails)3. 생산성 측정(Productivity measures)4. 유아독존 개발자(Prema donna Developers)5. '나중에 수정하자'라는 심리(Fix it later mentality)6. 개발경험이 없는 관리자(Nonprogrammer managers)7. 개발자인 관리자(Programme..
간단한 텍스트편집기로 notepad++ 를 쓰는 데, 가끔 프로그램이 비정상 종료가 되거나 해서 재시작 했을 경우, 각종 설정값들이 초기화(?)가 되면서 한글입력이 깨져서 되는 경우가 있다. 이럴 땐 설정 -> 스타일 환경설정 으로 가서~ 언어와 Style이 Global Sytles과 Global override 로 되어 있다면, 우측에 '전역 글꼴 사용'을 체크 해 주면.. 요렇게 아래와 같이 한글이 잘 나온다.~ 어때요~? 쉽죵~ :)
평소에 Netty(Netty 이전에는 MINA)에 관심도 많았고, 또 현재 진행 중인 프로젝트에도 Netty 3.x 를 사용 중인지라 Netty 4.0 에 대해 어떤 부분들이 변경되었는지 늘 궁금하던 차에.. 이참에 문서도 볼겸해서 이렇게 발번역(?)을 하게 되었다. 영어울렁증이 심한 나로썬 쉽지 않긴 했지만, 나름 진행하면서 Netty 4.0에 대해서 대략적인(?) 내용을 알 수 있는 계기가 되어 좋았다. 물론 번역에 대한 퀄리티는 절대(!!) 보장할 수 없으니 혹시라도 이 글을 보게 된다면 반드시 원문도 함께 보아야 할 것이다~~~~번역하다 도저히 이해가 안되거나 하는 부분에 대해서는 'wiz talk' 으로 시작하는 코멘트를 달거나 아니면 그냥 영어원문을 쓰기도 했음을 참고해 주길 바란다.(제발 해..
객체 직렬화/역직렬화 시 필요한 serialVersionSID ~해당 클래스가 직렬화/역직렬화 된다면 명시적으로 값을 지정해 주는 게 좋은데, 이클립스에서 편하게 serialVersionSID 를 생성해 주는 플러그인~첨부된 압축파일을 풀어서 이클립스 플러그인 디렉토리에 넣고 restart하면 된다. 사용법은 1. 이클립스에서 직렬화 할 파일을 선택, 마우스 우클릭하면 아래와 같이 'Add SerialVersionUID' 메뉴 선택. 2. 해당 소스에는 아래처럼 코드가 자동 생성된다. 짜잔~~ :) 뭐 자주 사용하지 않을 거면야 활용도가 거의 없겠지만, 혹시나 필요하다면 한번 써 보면 굿~! :) 파일 출처 :[http://softlife.tistory.com/category/%EA%B0%9C%EB%B0..
예전엔 HashMap에 바로 지원해 주는 메소드가 없어서 그냥 루프 돌리면서 List에 넣었었는데,오늘에서야 다시 한번 찾아보니 방법이 있었다. ㅡㅡ; HashMap hmResult = new HashMap();// 작업 어쩌구 저쩌구..// 작업한 hmResult를 List로 변환한다.List list = new ArrayList(hmResult .values())); 역시나 아직 멀었구나 난.. javadoc만 잘 좀 살펴봤어도 되었던걸 흑.. ㅜㅜ;
서버로 부터 받은 객체값을 출력해 보고 싶을 때 아래처럼 하면 뭔가가 주르륵 나온다. for (var myKey in msg) {console.log("msg["+myKey +"] = "+msg[myKey]);} == 결과 == msg[ports] =msg[data] = {"headerInfo":{"magicNumber":"WSK","svcId":1000,"appId":2000,"authKey":"wizardee","msgId":2,"master":1,"zoneCd":2465,"bodyLength":33},"bodyInfo":{"bodyData":"{\"rstCd\":\"00000\",\"zoneCd\":\"2465\"}"}} msg[source] = nullmsg[origin] = ws://localh..
- Total
- Today
- Yesterday
- spring
- 이클립스
- 단상
- network
- 스마트tv
- 개화예술공원
- 스프링
- 캠핑
- netty
- 주저리주저리
- json
- http
- java
- MySQL
- JavaScript
- 발번역
- myBatis
- db
- 주저리
- SVN
- 자바
- 중도캠핑장
- 개발
- 톰캣
- 무제
- 안드로이드
- socket
- QR코드
- 중도
- 오토캠핑
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |