2014년 5월 7일 수요일
2014년 3월 20일 목요일
프록시 환경에서 Maven 관련 업데이트 실패
STS (Spring Tool Suite) 를 깔고
Spring Starter Project를 설치하였는데..
계속 Maven 관련해서 오류가 발생하여 pom.xml에 계속 x 표가 보입니다.
Failure to transfer org.apache.maven.plugins:maven-compiler-plugin:pom:2.0.2 from http://repo1.maven.org/maven2was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.maven.plugins:maven-compiler-plugin:pom:2.0.2 from/to central (http://repo1.maven.org/maven2): No response received after 60000 ExampleProject Unknown Maven Problem
> 말인 즉슨 repository 사이트에서 받아올 파일을 받아오지 못한다는 내용이라서 역시나 네트워크 문제로 판단 되어
구글신님께 빌었더니(?) 아래와 같은 stackoverflow 오류 케이스를 찾아주셨고
http://stackoverflow.com/questions/5074063/maven-error-failure-to-transfer
Maven home에 settings.xml 을 만들고, 거기에 프록시 세팅을 해주면 된다는 사실을 알았습니다.
https://maven.apache.org/settings.html
정리하면
1. Maven Home에 settings.xml 작성
Maven Home 은
Windows : C:\Users\YourUserName\.m2\settings.xml
Linux : /home/YourUserName/.m2/settings.xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers/>
<mirrors/>
<proxies>
<proxy>
<id>myproxy</id>
<active>true</active>
<protocol>http</protocol>
<host>1.1.1.1</host>
<port>8080</port>
<nonProxyHosts>*.google.com|ibiblio.org</nonProxyHosts>
</proxy>
</proxies>
<profiles/>
<activeProfiles/>
</settings>
2. Project Context Menu (right-click over project name) > Run as > Maven clean
위 두 단계를 거치면 해결이 가능합니다.
2014년 3월 19일 수요일
프록시 네트워크 환경에서 자바 네트워크 세팅 방법
보안을 위해 프록시를 사용하는 환경에서 자바를 설치하고 프로그램을 만들던 중,
JAVA 프로그램 상에서 외부 사이트 접속을 시도하면 계속 Connection Timed Out 이 발생하였습니다.
google도 안붙는데 100% 네트워크 문제로 보고 이것저것 시도해봤습니다.
보안프로그램 방화벽
윈도우 방화벽까지 해재 해봤지만 현상은 여전했고..
방화벽 확인 필살기인 '텔넷 80포트 접속 신공'까지 시전해보며 방화벽 뚫린 것은 확인 했습니다.
심지어 브라우저에서도 매우 잘붙었고, 브라우저에 프록시 설정은 잘잡혀있었으며,
시작 > 제어판 > Java > 네트워크 설정에서 브라우저 설정 사용도 잘 잡혀있었습니다.
코드가 잘못된거 아닌가하여 이것저것 다 엎어보기도 했지만 감감 무소식..
슬슬 멘붕이 왔습니다. 너무 오래 쉰건가 하는 자괴감도 들고...
그러던 중 아래 처럼 자바 실행시 프록시 세팅하는 코드를 이용하여
System.setProperty("http.proxyHost", "1.1.1.1");
System.setProperty("http.proxyPort", "8080");
자바를 돌려보니... 되더군요 (이 시점에 멘탈 붕괴)
아아아 무언가의 이유로 자바만 프록시를 못타고 있던 것 이었습니다.
Mother Father Window!!!!!!!!!
결국.. 위 코드를 지우고
시작 > 제어판 > Java > 네트워크 설정 > 프록시 서버 사용 에서 프록시 세팅을 하여
문제 해결하였습니다.
오늘의 삽질 레벨 : 2 Lv
2013년 7월 2일 화요일
IE에서 자바스크립트를 이용하여 동적 폼 생성시 업로드 안되는 버그 해결방법
IE에서 자바스크립트를 이용하여 동적 폼 생성시 업로드 안되는 버그 해결방법
enctype말고, encoding에도 multipart/form-data를 추가하면 됩니당
ex)
var _form = document.createElement('FORM');
...
_form.setAttribute("encoding", "multipart/form-data" );
_form.setAttribute("enctype", "multipart/form-data" );
* reference :
http://www.bennadel.com/blog/1273-Setting-Form-EncType-Dynamically-To-Multipart-Form-Data-In-IE-Internet-Explorer-.htm
라벨:
javascript,
Know-Hows
2013년 6월 11일 화요일
[javascript] how to avoid jQuery, Prototype confliction
[javascript] how to avoid jQuery, Prototype confliction
만약 두 프레임워크를 사용해야하는 상황이라면
If you have to use both framework at the same application,
1. 아래와 같은 순서로 두 프레임워크를 불러온다.
- add both framework in order as below
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="jquery-1.7.1.min.js" charset="utf-8"></script>
2. 아래와 같이 추가하면 $는 프로토타입껄 사용하게 됨!
If you add below, you could use $ as Prototype object.
<script type="text/javascript">$.noConflict();</script>
3. 그리고 또 아래와 같이 추가하여 j$를 이용해 jQuery 명령 사용가능!
Also, if you add below sentence, you could use jQuery thorough j$ variable.
<script type="text/javascript"> var j$ = jQuery; </script>
fin.
라벨:
javascript,
Know-Hows
MS Log Parser를 이용하여 SunOne iPlanet 로그 파싱하기
MS Log Parser를 이용하여 SunOne iPlanet 로그 파싱하기
Log Parser 2.2(클릭하면 다운로드 페이지로 이동)에선 iPlanet이 분석 지원이 안된다는 불편한 진실에 맞서 TEXTLINE 방식으로 로그 내용을 문자열로 읽어들어와 내부 함수를 이용하여 쪼개어 내키는 대로 파싱하였음!
분석에 사용한 로그파일 형식은 아래와 같음
[웹서버 로그파일 헤더]
format=%Ses->client.ip% - %Req->vars.auth-user% [%SYSDATE%] "%Req->reqpb.clf-request%" %Req->reqpb.protocol% %Req->srvhdrs.clf-status% %Req->srvhdrs.content-length% %duration% %Req->headers.host% "%Req->headers.referer%" - %Req->headers.x-forwarded-for%
[웹서버 실제 로그]
111.111.111.111 - - [03/Jun/20xx:23:59:59 +0900] "GET /abc.css HTTP/1.1" HTTP/1.1 304 0 650 www.domain.com "http://www.domain.com/a.do" - 111.111.111.111
애플리케이션 오류를 분석하기 위해 위 로그 파일에서 상태값이 500, 503인 값만 추려내어
요청별로 오류 횟수를 카운팅하게됨!
[로그 문자열 분석의 핵심]
로그 문자열 분석의 핵심은 EXTRACT_TOKEN <-- 요 함수!
ex) EXTRACT_TOKEN (Text, 1, '\"') 라고 실행하게 되면
Text컬럼에서 큰따옴표(")로 문자열을 나누고 그중 두번째(0 based index) 값을 가져온다는 뜻!
[실제 분석에 사용한 명령문]
logparser
// 접근한 URL
"select EXTRACT_TOKEN (Text, 1, '\"') as url,
// 접근 횟수
count(url) as cnt,
// HTTP STATUS CODE
max(EXTRACT_TOKEN(Text, 10,' ')) as code,
// 시작시간
min(EXTRACT_TOKEN(Text, 3,' ')) as stime,
// 종료시간
max(EXTRACT_TOKEN(Text, 3,' ')) as etime
// 읽어들일 로그파일
from C:\Users\A\Desktop\logfile
// 결과 출력할 csv 파일
to C:\Users\A\Desktop\result.csv
// STATUS CODE가 500 혹은 503인 값들
where EXTRACT_TOKEN(Text, 10,' ')='500'
or EXTRACT_TOKEN(Text, 10,' ')='503'
// URL로 묶음
group by url
// 접근횟수로 내림차순 정렬
order by cnt desc"
// 입력형식은 TEXTLINE
-i:TEXTLINE
fin.
라벨:
Know-Hows,
Log Parser
피드 구독하기:
글 (Atom)