상용 작업 중에 다음과 같은 예외가 발생.

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:150)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1584)
        at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:174)
        at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:168)
        at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:848)
        at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:106)
        at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:495)
        at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:433)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:877)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1089)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1116)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1100)
        at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:402)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:170)
        at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:857)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)
        at com.omp.commons.utils.HTTPUtil.getStringContentHttps(HTTPUtil.java:281)
        at com.omp.commons.utils.HTTPUtil.getContentHttps(HTTPUtil.java:220)
        at com.omp.commons.idp.IDPManager.sendHttps(IDPManager.java:1100)
        at com.omp.commons.idp.IDPManager.sendIDPHttps(IDPManager.java:1048)
        at com.omp.commons.idp.IDPManager.searchUserCommonInfo(IDPManager.java:600)
        at com.omp.commons.idp.IDPManager.searchUserCommonInfoByUserKey(IDPManager.java:554)
        at com.omp.bp.cms.member.action.IDPResponseAction.idpProfile(IDPResponseAction.java:765)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:440)
        at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:279)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
        at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:163)
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249)
        at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
        at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468)
        at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
        at org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:444)
        at org.apache.coyote.ajp.AjpAprProtocol$AjpConnectionHandler.process(AjpAprProtocol.java:472)
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
        at java.lang.Thread.run(Thread.java:595)

SSL 통신 중 발생했는데, 여기저기 물어보니 인증서가 없어서 발생한 것이라고.
redirect가 아닌, java에서 response 직접 받는 형태에서 예외가 발생했음.

/usr/java/jdk1.5.0_17/jre/lib/security/ 에 jssecacerts 가 있어야 한다고...

'프로그래밍 > Server' 카테고리의 다른 글

[unix] ftp 사용법  (0) 2010.04.21
[unix] find 명령어 사용하기  (0) 2010.02.08
[Makefile] Makefile 소개(An Introduction to Makefiles)  (0) 2009.10.23
[Shell Script] Shell Script 문법  (0) 2009.10.14
[Shell Script] PATH추가  (0) 2009.10.14

[unix] ftp 사용법

프로그래밍/Server 2010. 4. 21. 01:53 Posted by galad
http://user.chol.com/~wjkim43/cpjb/unixtelnetftp.htm

나. FTP 접속

 유닉스에서 파일을 공유하기 위한 명령어인 FTP(File Transfer Protocol)는 접속하려는 컴퓨터에 원격접속을 하여 파일을 복사한다. FTP를 사용하기 위해서는 몇 가지 필요한 것이 있다.
 접속하려는 컴퓨터의 사용권 즉 ID가 있어야 한다.
 파일을 복사하거나 복사해 넣으려는 컴퓨터의 파일시스템 IP 어드레스, 혹은 도메인명(DNS)을 알아야 한다.

 (1) FTP 실행
 FTP명령을 실행하는 것은 아주 간단하다.
 ftp[ip Address]  혹은, ftp[도메인명]
 예를 들어, ftp 203.255.208.22라고 입력하면 해당 IP 주소의 컴퓨터에 접속하게 된다. 또한  ftp sunsite.snu.ac.kr라고 입력하면 서울대학교의 SUN 사이트의 ftp 서버에 접속하게 된다.
 또한 위와 같이 IP주소와 도메인명을 적지 않고 단순히 ftp만을 실행하고 ftp프롬프트 상에서 명령어를 사용하여 접속할 수 있다.
 ftp
ftp>open sunsit.snu.ac.kr

(2) FTP 명령어
 ㉮ prompt
 mget이나 mput 명령으로 파일을 전송하고 받으려 할 때 파일마다 전송을 할 것인지를 묻고 사용자가 'y'를 입력해야만 파일을 전송하는데, prompt명령을 사용하면 이러한 과정이 없이 무조건 파일을 전송한다.

 ㉯ bye, quit
 ftp 접속을 끊고 프로그램을 종료한다.

 ㉰ close, disconnect
 ftp접속을 해제한다.

 ㉱ cd
 디렉토리를 바꾼다. 유닉스와 도스의 cd 명령과 같다.

 ㉲ ls
 파일의 리스트를 보여준다. 유닉스의 명령어인 ls 와 같다.

 ㉳ lcd
 로컬 디스크의 디렉토리를 바꾼다. 즉, 현재 사용중인 컴퓨터 내부의 하드디스크의 디렉토리를 변경한다.
 !
 쉘 프롬프트로 잠시 빠져 나간다. 대부분의 도스 응용프로그램의 기능 중 하나인 도스쉘과 같은 기능이다. 다시 FTP로 들어가려면 exit를 입력한다.

 ㉴ delete[remote file]
 리모트 접속한 컴퓨터의 파일을 삭제한다.

 ㉵ mdelete[remote file]
 리모트 접속한 컴퓨터의 파일을 한꺼번에 삭제한다.

 ㉶ bin
 ftp를 통해 전달되는 데이터의 형태는 ascii형태이다. 즉, 7비트로 데이터가 전송되는데, 일반 텍스트 이외의 파일은 대부분이 바이너리 파일로 8비트로 데이터를 전송해야 한다. 그래서 바이너리 형태의 데이터를 받으려면 bin 명령을 실행해야 한다.

 ㉷ ascii
 데이터의 전송을 바이너리에서 아스키형태로 변환한다.

 ㉸ hash on
 데이터의 전송상태를 보여준다. hash명령을 사용하지 않으면 데이터가 현재 얼마나 전송되고 있는지 알 수 없다. hash명령을 실행하고 데이터를 받거나 전송하면  # 이 증가하게 되어 전송되고 있는 상황을 보여준다.

 ㉹ get
 파일을 다운로드 받는 명령이다. get명령은 선택한 하나의 파일만을 다운 받는다.

 ㉺ mget
 파일을 여러 개를 동시에 다운 받을 때 사용하는 명령이다. get명령은 한 번에 하나의 파일만을 받을 수 있으나 m(multi)get명령은 와일드카드 즉 * 와 ~를 파일을 선택할 때 사용할 수 있어서 여러 개의 파일을 받을 수 있다.

 ㉻ put/mput
 put은 파일을 업로드하는 명령이다. 한 번에 하나의 파일만을 업로드한다. 현재 자신의 디스크의 파일을 원격 접속한 컴퓨터의 하드디스크에 파일을 복사한다. mput은 한꺼번에 여러 개의 파일을 업로드하는 명령이다. mget과 마찬가지로 와일드카드를 사용하여 파일을 업로드한다.
http://www.itkuja.com/tt/108?TSSESSION=369b61cb290986c94201216056805511

find / -name "*rms*"
find (대상디렉토리) -옵션
출처: http://www.viper.pe.kr/docs/make-ko/make-ko_2.html#SEC5

SRC=Fraction.m main.m
OBJ=$(SRC:.m=.o)
EXE=hello.exe

CC=gcc
#-Wall -O3
DEBUG= `gnustep-config --objc-flags`
FLAGS= -I /home/uclick/GNUstep/Local/Library/Headers -L /home/uclick/GNUstep/Local/Library/Libraries
LDFLAGS= -lobjc -lgnustep-base
EFLAGS= -enable-auto-import -fconstant-string-class=NSConstantString
RM=rm

%.o: %.m
    $(CC) $(DEBUG) $(FLAGS) $(LDFLAGS) $(EFLAGS) -o $@ -c $<

$(EXE): $(OBJ)
    $(CC)  -o $@ $(OBJ)  $(FLAGS) $(LDFLAGS) $(EFLAGS)

all: $(EXE)
    

clean:
    -$ $(RM) $(OBJ)

make 로 실행.

SRC에 입력한 파일 목록에 해당하는 *.o 를 먼저 컴파일하고
exe를 생성.

make clean 하면 .o파일 삭제

'프로그래밍 > Server' 카테고리의 다른 글

[unix] ftp 사용법  (0) 2010.04.21
[unix] find 명령어 사용하기  (0) 2010.02.08
[Shell Script] Shell Script 문법  (0) 2009.10.14
[Shell Script] PATH추가  (0) 2009.10.14
[Tomcat] 톰캣에 https 설정하기  (0) 2009.09.02

[Shell Script] Shell Script 문법

프로그래밍/Server 2009. 10. 14. 13:01 Posted by galad
출처: http://www.2apes.com/~chack/htdocs/unix/script/


if문 사용관련
 if test $1  // 첫번째 인자가 있으면
then
        echo "Filename: $1"
else
        echo "Input Filename!!!"
        exit 1
fi
gcc -v -o $1 $1.m -lobjc


'프로그래밍 > Server' 카테고리의 다른 글

[unix] find 명령어 사용하기  (0) 2010.02.08
[Makefile] Makefile 소개(An Introduction to Makefiles)  (0) 2009.10.23
[Shell Script] PATH추가  (0) 2009.10.14
[Tomcat] 톰캣에 https 설정하기  (0) 2009.09.02
[unix] vi명령어  (0) 2009.04.16

[Shell Script] PATH추가

프로그래밍/Server 2009. 10. 14. 13:00 Posted by galad
출처: http://mwultong.blogspot.com/2006/07/cygwin-path-linux.html

PATH=${PATH}:추가할디렉토리경로
참조: http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html

로컬에서 톰캣이 https 를 처리할 수 있게 설정하기

self-signed 인증키 생성
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA
이 때, 비밀번호는
changeit
으로 하기. 이게 톰캣 디폴트. 변경 시에는 아래 설정에서 변경해줘야 함.
인증키 생성 시 나오는 질문에 적당히 대답하고(국가코드 82(한국)), 마지막 비번은 그냥 엔터. 위의 비번과 동일하게 설정됨.

톰캣의 server.xml에서

<-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<!--
<Connector
port="8443" minProcessors="5" maxProcessors="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https" secure="true";
clientAuth="false" sslProtocol="TLS"/>
-->
주석 제거.

https://localhost:8443
로 테스트.

안될때는 인증키 생성 시 만들어지는 .keystore 파일 위치를 바꿔볼 것(톰캣에서 읽을 수 있는 곳으로).

'프로그래밍 > Server' 카테고리의 다른 글

[Shell Script] Shell Script 문법  (0) 2009.10.14
[Shell Script] PATH추가  (0) 2009.10.14
[unix] vi명령어  (0) 2009.04.16
[Tomcat] 톰캣, JSP 등등 버전 에러 시  (0) 2009.04.07
[Tomcat] Quoting in attributes  (0) 2009.04.07

[unix] vi명령어

프로그래밍/Server 2009. 4. 16. 10:24 Posted by galad

'프로그래밍 > Server' 카테고리의 다른 글

[Shell Script] Shell Script 문법  (0) 2009.10.14
[Shell Script] PATH추가  (0) 2009.10.14
[Tomcat] 톰캣에 https 설정하기  (0) 2009.09.02
[Tomcat] 톰캣, JSP 등등 버전 에러 시  (0) 2009.04.07
[Tomcat] Quoting in attributes  (0) 2009.04.07

'프로그래밍 > Server' 카테고리의 다른 글

[Shell Script] Shell Script 문법  (0) 2009.10.14
[Shell Script] PATH추가  (0) 2009.10.14
[Tomcat] 톰캣에 https 설정하기  (0) 2009.09.02
[unix] vi명령어  (0) 2009.04.16
[Tomcat] Quoting in attributes  (0) 2009.04.07

[Tomcat] Quoting in attributes

프로그래밍/Server 2009. 4. 7. 11:49 Posted by galad
출처: https://issues.apache.org/bugzilla/show_bug.cgi?id=45015

<mytags:tag value="<%= "hi!" %>" />

는 올바른 문법이 아니랜다. 톰캣5.5도 잡아준다. 그래서 value='<%= "hi!" %>' 와 같이 바꿨더니
다른 곳에서 가끔 에러난다.

왜 그런지는 모르겠다.



'프로그래밍 > Server' 카테고리의 다른 글

[Shell Script] Shell Script 문법  (0) 2009.10.14
[Shell Script] PATH추가  (0) 2009.10.14
[Tomcat] 톰캣에 https 설정하기  (0) 2009.09.02
[unix] vi명령어  (0) 2009.04.16
[Tomcat] 톰캣, JSP 등등 버전 에러 시  (0) 2009.04.07