[Linux] 명령어(별칭) 만들기(alias)

리눅스에서는 alias명령어를 사용하여 나만의 명령어(별칭) 를 만들 수 있다. 자주 사용하는 긴 명령어를 다른이름으로 간단히 줄여서 사용할 수 있다.

현재 접속한 세션에서 명령어(별칭) 설정 및 해제 하는법. 세션을 종료하거나 시스템을 재부팅할 경우에 alias 설정한게 사라진다.

명령어(별칭) 설정
alias 별칭='명령어정의'
ex. alias morelog='more /home/logs/log'

명령어(별칭) 해제
unalias 별칭
ex. unalias morelog


alias 설정을 게속 유지하고 싶다면, 두가지방법이 있다.
첫번쨰는 ~/.bashrc 파일에 위의 설정을 추가하고 저장한다. 이 방법은 현재 접속한 사용자에 한해서 alias설정이 적용된다.
두번째는 /etc/profile 파일에 위의 설정을 추가하고 저장한다. 이 방법은 모든 사용자에게 alias 설정이 적용된다.

예제
vi ~/.bashrc or vi /etc/profile 를 사용하여 파일을 열어 alias 를 정의한다. 정의한 후 바로 적용을 하기위해서는 source ~/.bashrc 를 사용하면 된다.


alias 명령어를 사용하면 설정된 별칭들의 리스트를 볼 수 있다.










[Linux] 하드링크와 심볼릭링크(ln)

하드링크와 심볼릭링크(ln)

하드링크와 심볼릭링크는 링크를 만들때 사용한다.

하드링크 예제
ex. ln file link
ln 원본파일명 하드링크파일명


심볼릭링크 예제
ex. ln -s file link
ln -s 원본파일명 하드링크파일명


링크에대해서 알기위해 'innode' 라는 리눅스의 파일시스템에서 사용하는 자료구조를 알 필요가 있다.
모든 파일과 디렉터리는 한개씩 inode를 가지고 있으며 여기에는 해당 파일의 허가권, 소유권, 파일의 실제 위치 등 중요한 정보들이 들어있다. inode가 모여 있는 공간을 inode block 이라고 한다. inode block이 차지하는 공간은 매우 작으며, 실제 데이터가 저장되는 block이 디스크의 대부분을 차지한다. inode는 데이터의 우편번호 역할을 한다고 볼 수 있다.

하드링크란?
월래 파일의 데이터에 대한 또 다른 접근경로이다. 하드링크는 원본파일의 innode를 직접적으로 가리키게 되는데 그래서 원본파일이 삭제 되더라도 데이터를 남아있게된다. 
즉,
하드링크 -> 파일시스템 데이터 <- 원본파일 와 같이 하드링크는 파일시스템 데이터를 가리킨다

심볼릭링크란?
윈도우의 바로가기 아이콘과 매우 흡사하다. 심볼릭링크는 원본 파일이 삭제될경우 링크대상이 사라져서 사용할 수 없게된다. 이를 링크가 깨졌다라고 표현한다.
즉,
심볼릭링크 -> 원본파일 -> 파일시스템 데이터 와 같이 심볼릭링크는 원본파일을 가리킨다.

하드링크와 심볼릭링크의 차이
하드링크에는 2가지 제약조건이 있다.
1. 파일시스템 외부에 있는 파일을 참조 할 수 없다. 즉 하드링크는 같은 디스크 파티션에 있는 파일이 아니면 참조할 수 없다.
2. 디렉토리는 링크 할 수 없다.
위의 조건이 있을경우 하드링크가 아닌 심볼릭링크를 사용해야한다.

[Linux] 파일 및 디렉토리 삭제(rm)

리눅스에서 파일 및 디렉토리 삭제하는방법

표현식 : rm 파일(또는 디렉토리)

ex. rm file1
file1을 완전 삭제한다.

리눅스처럼 유닉스형 운영체제는 삭제를 취소할 수 있는 명령어가 없다. 그러므로 신중하게 명령어를 작성하고 수행해야한다.
특히 와일드카드(*) 를 함께 사용할때 주의를 해야 한다.
ex. rm *.html

rm 옵션

옵션 

설명 

-i, --interactive 

파일을 삭제하기 전 확인메세지를 주는 옵션. 

-r, --recursive 

재귀적으로 디렉토리를 삭제하는 옵션. 즉 디렉토리 하위의 디렉토리가 있다해도 삭제된다.(삭제시 경고 메세지가 나온다) 

-f, --force 

확인메시지 없이 파일을 삭재하는 옵션 

-v, --verbose 

삭제 완료메세지를 보여주는 옵션 


rm 예제

사용 예제 

결과 

rm file1 

file1파일을 삭제한다. 

rm -i file1 

file1파일을 삭제하기 전에 확인메세지를 보여준다 

rm -r file1 dir1 

file1파일과 dir1 디렉토리 및 하위 내용을 삭제한다. 이 경우 dir 하위에 파일 혹은 디렉토리가 있을경우 확인메세지를 보여준다.

rm -rf file1 dir1 

file1파일과 dir1 모두 삭제하되 file1이나 dir1이 존재하지 않더라도 rm 명령어가 실행된다. 즉 dir1하위에 파일 혹은 디렉토리가 있을떄 확인메세지 없이 모두 삭제된다.


1. rm file1

2. rm -i file1

3. rm -r file1 dir1

4. rm -rf file1 dir1





[Linux] 파일 이동과 이름변경(mv)

리눅스에서 파일 이동과 이름변경 하는법

표현식 : mv 이동할파일(또는 디렉토리) 이동위치(또는 이름)

ex. mv item1 item2
item1 파일 또는 디렉토리를 item2로 이동하거나 이름을 바꾼다.


mv 옵션

 옵션

설명 

-i, --interactive 

기존에 파일을 덮어쓰기 전에 확인 메세지를 보여주는 옵션. 이 옵션이 없다면 확인과정 없이 덮어씌우게 된다 

-u, --update 

파일을 이동할때, 그 디렉토리에는 없거나 또는 최신버젼인 파일만을 이동하기 위한 옵션. 

-v, --verbose 

이동 완료 메세지를 보여주는 옵션. 


mv 예제

사용 예제 

결과 

mv file1 file2 

file1 파일을 file2로 이동한다. file2가 이미 있다면 file1의 내용을 덮어씌우게 된다. file2가 없다면 새로 생성된다. 

mv -i file1 file2 

file2가 이미 있다면 덮어씌우기 여부를 확인한다. 

mv file1 file2 dir1

file1과 file2를 dir1 디렉토리로 이동한다. 

mv dir1 dir2 

dir1과 그 하위내용까지 모두 dir2로 이동한다. dir2가 없다면 새로 생성되고 dir1은 삭제된다. 


'OS > linux' 카테고리의 다른 글

[Linux] 하드링크와 심볼릭링크(ln)  (0) 2017.06.29
[Linux] 파일 및 디렉토리 삭제(rm)  (0) 2017.06.28
[Linux] 파일 및 디렉토리 복사(cp)  (0) 2017.06.26
[Linux] 시스템 디렉토리  (0) 2017.06.25
[Linux] 쉘(shell)이란?  (0) 2017.06.25

[Linux] 파일 및 디렉토리 복사(cp)

리눅스에서 파일 및 복사 하는방법(cp)

표현식 : cp 복사할파일명 복사된파일명

ex. cp file1 file2 
file1을 file2로 복사한다. file2라는 파일이 이미 있다면 file1 내용을 덮어쓰게된다. 없다면 새로 생성된다.


cp 옵션

옵션 

설명 

-a, --archive 

파일 및 디렉토리뿐만 아니라 소유자 및 권한 정보와 같은 속성까지 모두 복사한다. 반면 일반적으로는 복사를 하는 사용자의 기본적인 속성을 복사한다. 

-i, --interactive 

기존 파일을 덮어쓰기 전에 확인 메세지를 보여주는 옵션. 이 옵션이 없으면 확인과정 없이 그대로 파일을 덮어쓰게된다. 

-r, --recursive 

디렉토리와 그 하위의 내용까지 복사할 때 쓰는 옵션. 디렉토리를 복사할때 사용한다. 

-u, --update 

어떤 디렉토리에 복사할때 그 디렉토리에 없거나 최신버전인 파일만을 복사하기위해 사용 

-v, --verbose 

복사 완료 메세지를 보여주는 옵션. 


cp 사용예제

예제 

결과 

cp -i file1 file2

file2가 존재할 경우 확인메세지를 볼 수 있다.

cp file1 file2 dir1 

file1과 file2를 dir1이라고 하는 디렉토리로 복사한다. 단 dir1은 존재해야 한다. 

cp dir1/* dir2 

dir1 디렉토리에 있는 모든파일을 dir2 디렉토리로 복사한다. 

cp -r dir1 dir2 

dir1 디렉토리와 그안에 있는 모든 내용을 dir2 디렉토리로 복사한다. dir2가 없으면 새로 생성될것이고, dir1 디렉토리에 있는 모든내용을 복사한다. 





'OS > linux' 카테고리의 다른 글

[Linux] 파일 및 디렉토리 삭제(rm)  (0) 2017.06.28
[Linux] 파일 이동과 이름변경(mv)  (0) 2017.06.27
[Linux] 시스템 디렉토리  (0) 2017.06.25
[Linux] 쉘(shell)이란?  (0) 2017.06.25
리눅스(centos) 에 SVN(subversion) 설치  (1) 2016.06.20

[Linux] 시스템 디렉토리

리눅스의 시스템 디렉토리에 대해서 알아보겠습니다.

테스트환경 : centos7 (vmware)


 디렉토리

설명 

 루트 디렉토리. 파일시스템 시작점

/bin 

시스템 부팅과 실행에 필요한 바이너리(프로그램) 들을 포함하고 있다. 

/boot 

리눅스 커널. 시작 RAM 디스크 이미지(시스템 부팅 시 필요한 드라이버가 있음) 와 부트로더를 포함하고 있다. 

/dev 

디바이스 노드를 갖고 있는 특수 디렉토리. 커널이 인식하고 있는 모든 디바이스들을 관리한다. 

/etc

시스템 전반의 환경설정 디렉토리. 그리고 시스템 부팅  시에 시스템의 각 서비스를 시작하는 쉘 스크립트가 있다. 또한 모든 파일은 텍스트 형식이다.

  • /etc/crontab :  자동 실행되는 업무(job)를 정의하는 파일
  • /etc/fstab : 저장장치 테이블과 해당 마운트 포인트 정보
  • /etc/passwd : 사용자 계정 정보

/home

일반적인 설정상태에서 각 사용자마다 /home 디렉토리를 갖는다. 일반적 유저들은 home 디렉토리 내에서만 파일을 편집할 수 있다.
잘못된 조각으로부터 시스템을 보호하기 위한 조치이다.

/lib

주요 시스템프로그램에서 사용하는 공유 라이브러리 디렉토리. 원도우의 DLL과 비슷하다 

/lost+found 

포맷된 각 파티션이나 ext3처럼 리눅스 파일시스템에서 사용하는 디바이스라면 이 디렉토리가 있을것이다. 파일시스템에 문제가 생겼을때 부분적인 복구를 도와주는 디렉토리.

/media 

휴대용 디바이스(USB, CO-ROM 등)가 마운트되는 마운트 포인트 디렉토리  

/mnt 

휴대용 디바이스를 제거하기 위한 마운트 포인트 디렉토리.

/opt

추가적인 소프트웨어 설치 디렉토리. 주로 상업용 소프트웨어가 설치된다. 

/proc 

리눅스 커널이 관리하는 가상 파일시스템 디렉토리. 이곳에 저장된 것들은 커널 자체를 들여다 볼 수 있는 파일이다. 이 파일들은 텍스트 형식이고 커널이 컴퓨터는 어떻게 관리하고 있는지에 대한 단면을 보여준다. 

/root 

루트 계정의 홈 디렉토리 

/sbin 

시스템 바이너리 디렉토리. 이 파일들은 일반적으로 슈퍼유저를 위한 중요한 시스템 작업을 수행하는 프로그램들이 있다. 

/tmp 

임시 저장용 디렉토리. 프로그램들에 의해서 만들어지는 임시 파일들을 저장하는 공간이다. 

/usr 

일반사용자가 사용하는 디렉토리. 사용자가 사용하는 모든 프로그램과 지원 파일들이 모두 들어 있다.

/var

상대적으로 변하기 쉬운 데이터를 모아두는 디렉토리. 다양한 데이터베이스, 스풀 파일, 사용자 메일 등과 같은 데이터가 저장된다. 

/var/log 

시스템 활동을 기록하는 디렉토리. 매시간마다 시스템 상황을 확인하는 매우 중요한 기록파일이 있다. 

 

 

 

 

 

 

 

 

 

 

 

 


[Linux] 쉘(shell)이란?

쉘(shell)이란?

키보드로 입력한 명령어를 운영체제에 전달하여 이 명령어를 실행하게 하는 프로그램.


대부분의 리눅스 배포판은 bash라고 하는 GNU프로젝트의 쉘 프로그램을 제공한다.
'bash' 라는 이름은 Bourne Again Shell 의 약어로 '스티브 본'이 개발한 최초 유닉스 쉘프로그램인 sh의 확장판이라는 의미를 담고있다.

이건 쉘 프롬프트라고 부르고 쉘이 입력 가능한 상태일 때에만 나타난다.
이미지의 '#'의 의마는 권한을 나타내며 '슈퍼관리자' 일때 '#' 이고, 그 이외의 사용자에게는 '$' 이 나올것이다.

리눅스(centos) 에 SVN(subversion) 설치

리눅스 환경에서 SVN을 설치하기
설치환경
CentOS release 6.5 (Final)

사용환경
Eclipse Java EE IDE for Web Developers _ Luna Service Release 2 (4.4.2)


1. SVN 설치 확인
#svn
-bash: svn: command not found

설치가 되어 있을경우
#svn
사용법은 'svn help'를 통해 볼 수 있습니다.

2. SVN 설치하기
#yum install subversion

설치가 완료되면
#service svnserve status
svnserve is stopped
위와 같이 서비스에 등록된걸 확인할 수 있다

3. SVN 이 사용할 저장소 지정
#mkdir /home/svn        //폴더생성
#cd /home/svn            //폴더로 이동
#svnadmin create --fs-type fsfs repos
svn 저장서로 지정

4. SVN 구동
#svnserve –d –r /home/svn/
SVN 은 기본 3690포트를 사용하고 있다.
iptables 를 확인하여 해당포트를 열어 주어야한다.

#vi /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
iptables에 3690 포트 추가

#service iptables restart
적용을 위해 방화역 재시작

#iptables -nL
정상적으로 적용되었는지 확인
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22    //ssh
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:3690 //svn


5. SVN 사용자 등록
SVN은 OS사용자와 별개로 아이디를 생성해서 사용한다.
설정내용 : 비로그인시 권한 없음, 로그인하면 쓸수 있음, passwd 사용
#vi repos/conf/svnserve.conf
혹은 #vi /home/svn/repos/conf/svnserve.conf

[general]
anon-access = none (인증 되지 않은 사용자 접근 거부)
auth-access = write (인증된 사용자 쓰기 권한)
password-db = passwd (사용자에 대한 계정정보)

처음설치 후에 위의 설정앞에 #이 있는데 그걸 지워주고 위와같이 설정한다.

svnserve.conf 와 같은 경로에 passwd , authz 파일이 있다.
#vi passwd

[users]
# harry = harryssecret
# sally = sallyssecret
test=1111

test 라는 아이디를 사용하고 비밀번호가 1111 인 사용자를 등록한다.

#vi authz

[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
usergroup=test                                //유저그룹 등록( ,를 이용하여 추가가능)

[/]
*=rw              
[repository:/repos]                            //저장소 경로
@usergroup=rw                                //그룹에 rw권한 부여

# [/foo/bar]
# harry = rw
# &joe = r
# * =

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r

6. 생성한 사용자에게 RW 권한설정 (Permission 관련)
#chmod –R 760(or 764) /home/svn/*

7. 저장소 접근 주소
svn://192.168.0.141/repos
EX) svn://서버IP/경로

SVN 설치완료

이클립스에서 프로젝트를 추가하여 확인해보기
**이클립스에 SVN 플러그인이 설치 되어 있어야한다.

1. 테스트 프로젝트 생성

2. 프로젝트 오른쪽 클릭 team - share project - 창이나오면 svn 선택
create a new repository location 체크 next - URL 에 svn://192.168.0.141/repos 와
생성한 아이디와 비밀번호를 입력하고 next - simple mode 체크 funish









'OS > linux' 카테고리의 다른 글

[Linux] 시스템 디렉토리  (0) 2017.06.25
[Linux] 쉘(shell)이란?  (0) 2017.06.25
tomcat catalina.out 재시작 없이 초기화시키기  (1) 2016.05.26
HTTP 요청, 응답 확인(curl)  (0) 2015.02.25
시스템관리_disk_df  (0) 2015.02.25

tomcat catalina.out 재시작 없이 초기화시키기

톰캣 로그파일인 catalina.out 파일의 용량이 게속 쌓일경우 디스크 문제가 발생할 수 있다. 그래서 서버 재시작 없이 로그파일을 초기화 시킬 수 있다.

톰캣 로그 파일이 있는곳으로 이동
# cd tomcat/logs

# cat /dev/null > catalina.out

이렇게 하면 지우지 않고 파일을 초기화 할 수 있다.

'OS > linux' 카테고리의 다른 글

[Linux] 쉘(shell)이란?  (0) 2017.06.25
리눅스(centos) 에 SVN(subversion) 설치  (1) 2016.06.20
HTTP 요청, 응답 확인(curl)  (0) 2015.02.25
시스템관리_disk_df  (0) 2015.02.25
시스템관리_메모리_top  (0) 2015.02.25

java.security.KeyException

로컬에서는 정상적으로 동작을 하는데 서버에서는 아래와 같이 익셉션이 발생한다..
로컬은 오라클jdk를 사용하고 서버는 openjdk를 사용하고 있었다.
오라클에서 받은 jdk가 아닌 openjdk를 사용하고 계신분이 아래에 애러가 발생하신다면 jdk변경없이 아래와 같이 해결할 수 있다.

환경
CentOS release 6.5 (Final)
jave 1.7 (java-1.7.0_99-openjdk)

기본 코드

 import java.net.HttpURLConnection;

import java.net.URL;

public class Bla{
  public static void main(String[] args) throws Exception {
    System.out.print("Hello\n");
    String url=https://xxx.com/www?xxx=sss&aaa=ccc;
    try{
      HttpClient client = new HttpClient(httpClientConst.connMgr);
   PostMethod method = new PostMethod(url);
      
    int returnCode = client.executeMethod(method);
       if (returnCode == HttpStatus.SC_NOT_IMPLEMENTED) {       
          return result;
       }
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream() ;
    byte[] byteArray = new byte[1024];
    
    int count = 0 ;
    while((count = method.getResponseBodyAsStream().read(byteArray, 0, byteArray.length)) > 0){
     outputStream.write(byteArray, 0, count) ;
    }
    String responseStr = new String(outputStream.toByteArray(), "utf-8");
    }
    catch (Exception e){
      e.printStackTrace();
      System.out.print("Error\n");
    }
    System.out.print("About to loop\n");
    while(true){Thread.currentThread().sleep(1000);} //Crudest debug ever
  }
}


애러메세지

javax.net.ssl.SSLException: java.security.ProviderException: java.security.KeyException

        at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
        at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1916)
        at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1874)
        at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1857)
        at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1783)
        at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:127)
        at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
        at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
        at org.apache.commons.httpclient.HttpConnection.flushRequestOutputStream(HttpConnection.java:825)
        at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager
$HttpConnectionAdapter.flushRequestOutputStream(MultiThreadedHttpConnectionManager.java:1543)
        at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1975)
        at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:993)
        at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:393)
        at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:168)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:324)
        at com.GifTing.gw.media.business.BuyHistStatusBusiness.getGalaxiaPinInfo(BuyHistStatusBusiness.java:904)
        at com.GifTing.gw.media.business.BuyHistStatusBusiness.OutPinStatus(BuyHistStatusBusiness.java:384)
        at com.GifTing.gw.media.action.OutPinAction.pinStatus(OutPinAction.java:192)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
        at com.dki.asf.action.DispatchAction.execute(DispatchAction.java:42)
        at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
        at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
        at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
        at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
        at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
        at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
        at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at com.GifTing.common.filter.ForbidFilter.doFilter(ForbidFilter.java:64)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at com.dki.asf.web.filter.EncodingFilter.doFilter(EncodingFilter.java:44)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.security.ProviderException: java.security.KeyException
        at sun.security.ec.ECKeyPairGenerator.generateKeyPair(ECKeyPairGenerator.java:146)
        at java.security.KeyPairGenerator$Delegate.generateKeyPair(KeyPairGenerator.java:704)
        at sun.security.ssl.ECDHCrypt.<init>(ECDHCrypt.java:78)
        at sun.security.ssl.ClientHandshaker.serverKeyExchange(ClientHandshaker.java:717)
        at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:278)
        at sun.security.ssl.Handshaker.processLoop(Handshaker.java:913)
        at sun.security.ssl.Handshaker.process_record(Handshaker.java:849)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1035)
        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1344)
        at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:721)
        at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:122)
        ... 54 more
Caused by: java.security.KeyException
        at sun.security.ec.ECKeyPairGenerator.generateECKeyPair(Native Method)
        at sun.security.ec.ECKeyPairGenerator.generateKeyPair(ECKeyPairGenerator.java:126)


해결
openjdk 1.7에서만 문제가 발행하였다.
1.8로 업데이트를 하면 문제가 발생하지 않는다.
하지만 해당서버에서 다른 서비스도 돌아가기떄문에 버젼업을 하기 애매하여
라이브러리를 추가하는 작업을 하였다.

[root@WAS-SERVER-01 bin]# yum provides /usr/lib64/libssl3.so

[root@WAS-SERVER-01 lib64]# sudo yum upgrade nss