다른 PC의 이클립스에서 개발한 프로젝트를 새로운 PC의 이클립스로 import할 경우 원래 PC의 개발환경과 JDK, Tomcat... 등등 환경이 다른 관계로 인해 프로젝트에 빨간색 x 박스가 뜨는 경우가 허다하다.
이를경우 해법은 

1) 현재 PC의 JDK 설치 경로 맞춰주기
프로젝트 위에서 마우슨 우측 클릭 ⇒ 팝업 메뉴에서 Build Path 선택 ⇒ Configure Build Path ⇒ Java Build Path 창의 Libraries 탭 선택 ⇒ JRE System Library 항목 선택 ⇒ 우측 Eidt… 버튼 클릭 ⇒ JRE System Library 창에서 3가지 radio 버튼 항목 중 “Workspace default JRE(Java SE …) 항목 클릭 ⇒ Finish ⇒ Apply

2) .jar 파일이 없다는 경우(maven dependency 에러) pom.xml에서 맞춰주거나 혹은 해당 .jar 파일을 다운 받아서 추가하기
webapp/WEB-INF/lib 폴더(lib 폴더 없으면 생성)에 원하는 .jar 파일 복사 ⇒ 프로젝트 위에서 마우스 우측 클릭 ⇒ 팝업 메뉴에서 Build Path 선택 ⇒ Configure Build Path ⇒ Java Build Path 창의 Libraries 탭 선택 ⇒ 우측 “Add JARs…” 버튼 클릭 ⇒ 새로운 창에서 복사했던 .jar가 있는 webapp/WEB-INF/lib/ 아래의 해당 .jar 선택 ⇒ OK ⇒ Apply

3) 아래와 같은 에러가 발생시에는 
Target runtime jre1.8.0_161 is not defined. MybatisProject Unknown Faceted Project Problem

프로젝트에 에러가 발생했을 때는 구체적으로 어디서 어떤 에러인지에 대한 정보를 이클립스가 제공해주는 데(예를들어 위와 같은 에러) 그것 볼려면 메뉴에서 Window - Show View - Problems 메뉴를 선택하면 에러에 대한 자세한 정보를 볼수 있다.
위와 같은 에러의 경우는

프로젝트 위에서 마우스 우측 클릭 ⇒ Properties ⇒ Java Build Path 창의 좌측 항목들 중 Project Facets 항목 선택 가운데 Project Facet 항목들 중 Java 항목 선택 ⇒ 현재 PC에 설치된 Java 버전과 동일한 버전이 선택됐는지 확인 ⇒ 우측 Details와 Runtimes 탭 중에서 Runtimes 탭 선택 ⇒ 현재 개발 PC에 설치되어 있는 Java 버전에 맞는 항목 선택

나의 경우는 jre1.8.0.202가 설치되어 있었는데 체크박스 체크된 jre 버전은 1.8.0.161이 선택되어 있어서 발생한 에러였다.

Java/JSP Web Application을 WAR 파일로 만든 후 Tomcat 웹 애플리케이션 서버에 배포하는 법.


본 포스팅은 다음 상황에서의 설명이다.

 -. Ubuntu 16.04 LTS 버전

 -. Tomcat 8.0

 -. 톰캣 가상 호스트를 이용해서 joe.iptime.org에 대한 웹 루트를 /home/joe/www/ROOT/로 변경하였다.

    (톰캣 가상 호스트 설정하는 법은 여기를 참조)


Java/JSP로 개발된 웹 애플리케이션을 실제 서버에 배포할때 WAR 파일을 만들어 배포하게 된다. 그런데 톰캣 가상호스트를 만들어 디폴트 웹 root 디렉토리를 /home/joe/www/ROOT/로 변경하였을 경우 WAR 파일을 배포하는 방법에 대한 것이다.


Ubuntu의 경우 Tomcat의 웹 루트(DocumentRoot)는 /var/lib/tomcat8/webapps/ROOT/이다. 따라서 가상호스트를 만들지 않은 상황에서는 WAR 파일을 /var/lib/tomcat8/webapps 폴더로 FTP 등을 이용해서 올리면 자동으로 WAR 파일을 압축을 풀어서 해당 웹 애플리케이션이 배포가 된다. 만일 압축 해제및 배포가 자동으로 되지 않는다면 터미널 창에서 다음과 같이 tomcat을 재시작해 주면 정상적으로 배포가 된다.


# service tomcat8 restart


그런데 가상 호스트를 만들을 때는 WAR 파일을 어디로 올려야 되는가?

/home/joe/www로 WAR 파일을 올려도 WAR 파일이 자동으로 압축해제 및 배포가 되지를 않는다. 톰캣을 재시작해도 마찬가지이다.


/etc/tomcat8/server.xml을 열어보면 unpackWARs="true" autoDeploy="true"로 되어 있음에도 불구하고 /home/joe/www에 WAR 파일을 업로드해도, 혹은 톰캣을 재시작해도 WAR파일이 자동으로 배포가 되지 않는다.


      <Host name="joe.iptime.org"  appBase="/home/joe/www"

            unpackWARs="true" autoDeploy="true">

... 중 략 ...

       </Host>


이런 경우 다른 더 좋은 방법이 있는지 모르겠으나 톰캣의 디폴트 웹 root인 /var/lib/tomcat8/webapps/에 WAR 파일을 업로드하면 자동으로 배포가 이루어진다. 이렇게 압축이 풀려진 해당 디렉토리와 그 하위 디렉토리 및 전체를 가상 호스트를 만든 해당 웹 루트(여기서는 /home/joe/www/ROOT/)에 복사하는 수 밖에는 없다.  Flower.WAR 파일이라고 한다면 이 파일을 /var/lib/tomcat8/webapps/로 업로드하면 이 디렉토리에 Flower라는 새로운 디렉토리가 생성이 되고 그 하위에 개발했던 웹 애플리케이션의 파일과 해당 디렉토리들이 압축이 풀려져 있다. 따라서 다음 명령을 이용해서 가상 호스트의 해당 웹 root로 복사를 하면 정상적으로 웹 애플리케이션이 구동이 된다.


# pwd

/var/lib/tomcat8/webapps

# cp -r ./Flower/* /home/joe/www/


이클립스에서 WAR 파일을 만드는 방법은 해당 프로젝트 위에 마우스 우측 클릭하여 다음 그림과 같이 진행하면 WAR 파일을 얻을수 있다.







이클립스로 코딩을 하다 보면 아래 그림과 같이 현재 변수(혹은 객체)에서 사용 가능한 메소드들 등을 보여주는 코드 힌트 기능이 매우 요긴하게 쓰인다.




보통은 자동으로 표시가 되나 필요시 특정 키를 누름으로 해당 기능을 작동하게 할 필요가 있다. 이에 대한 설정법이다.


Window - Pereferences - General - Keys 에서 필터 부분에 assist를 입력하면 해당 Command 목록이 필터링이 된다. 


그 중에서

Content Assist에 대해 Binding의 값을 F6 등과 같이 자신이 원하는 키로 설정하면 된다.





만일 위와 같이 설정해도 안되면 아래 사항을 확인해서 항목을 모두 체크 표시해 주면 된다.


Window - Pereferences - Java - Editor - Content Assist - Advanced에서

항목들을 모두 체크해 주면 된다. 아랫 쪽 것도 마찬가지로







eclipse(이클립스)의 개발 환경을 utf-8로 설정하기


이클립스의 기본 인코딩이 euc-kr로 되어 있다. 인코딩 설정을 utf-8로 바꾸는 법.


Windows - Preferences - General - Workspace - Text file encoding에 대해 utf-8로 설정





⊙ 정 프로젝트만 인코딩을 utf-8로 설정하는 법


먼저 프로젝트를 선택 - 우측 버튼 클릭 - Properties 선택 - Resources 선택 - Text file encoding을 원하는 인코딩으로 설정







이클립스의 몇 가지 유용한 단축키


Ctrl-Shift-O

⇒ 이클립스에서 클래스 자동으로 import 시키기


Alt-Shift-O

⇒ 특정 변수가 사용된 위치를 손쉽게 파악하게 하는 토글 기능

특정 변수가 사용된 위치를 찾기 위해서 Ctrl-F로 검색할 변수명을 입력해서 찾을수도 있으나

이클립스는 해당 변수를 마우스롤 클릭하면 해당 변수가 사용된 위치를 아래 그림과 같이 표시해 준다.

그런데 이게 정상적으로 작동이 안될 때가 있다. 

이때 Alt-Shift-O를 누르면 정상적으로 작동이 된다.

아래 그림에서 화면 우측 하단의 작은 회색 사각형이 해당 변수가 사용된 위치이다.







이클립스(eclipse)의 Show View의 항목들이 보이지 않을 때


이클립스의 Window - Show View - No Applicable View만 보이고

Show View의 여러 하위 항목들이 보이지 않을 때 해결하는 방법이다.


Window - Open Perspective - Java를 클릭하면 해결된다.



현재 소스에 있는 특정 변수 명을 변경할 경우, 
소스가 클 경우는 해당 변수 명을 일일이 변경하는 건 다소 복잡한 작업이 된다.
이 문제를 한번에 해결하는 단축키를 이클립스에서 제공한다.


alt-shift-r : 변수명 변경(소스에서 이 변수를 한꺼번에 모두 바꿈)


바꾸고자 하는 변수 명에 커서를 둔 상태에서 alt-shift-r을 누르면 해당 변수 명이 블럭으로 선택되고 해당 변수 명을 변경한 후 Enter키를 치면 이 변수를 한꺼번에 모두 바꾼다.


+ Recent posts