build.gradle에 다음 한 줄만 추가하면 됩니다.


apply plugin: 'eclipse-wtp'


gradle build로 실행하면 .project, .classpath 두 파일이 생깁니다.


total 48

drwxr-xr-x  11 kenu  staff   374 10 21 23:35 .

drwxr-xr-x  11 kenu  staff   374 10 20 15:24 ..

-rw-r--r--   1 kenu  staff  1358 10 21 23:35 .classpath

drwxr-xr-x   3 kenu  staff   102 10 21 23:35 .gradle

-rw-r--r--   1 kenu  staff   355 10 21 23:35 .project

drwxr-xr-x   3 kenu  staff   102 10 21 23:35 .settings

-rw-r--r--   1 kenu  staff   228 10 21 23:35 build.gradle

drwxr-xr-x   3 kenu  staff   102 10 20 15:04 gradle

-rwxr-xr-x   1 kenu  staff  5080 10 20 15:04 gradlew

-rw-r--r--   1 kenu  staff  2404 10 20 15:04 gradlew.bat

drwxr-xr-x   4 kenu  staff   136 10 20 14:59 src


이클립스에서 이 디렉토리 지정하고 import 하시면 됩니다.

다음 주 24일 출시되는 이클립스 3.5 Galileo의 첫화면이 확 바뀌었습니다. 제법 멋있습니다.
JavaEE 버전의 첫 화면입니다. 다른 패키지들의 화면도 확인하면 포스팅하겠습니다.

급 땡기는군요.

이클립스 3.5에 맞춰 동시에 출시되는 제품들 목록입니다.
http://wiki.eclipse.org/Galileo_Simultaneous_Release

--
ps. Java 패키지 받았더니 살짝 바뀌었습니다. JEE 패키지는 크게 바뀐 거네요. Welcome 페이지를 커스터마이징 할 수 있도록 기능이 추가되었네요.


버전이 맞지 않으면 이클립스의 다이나믹 웹 프로젝트가 컴파일 되지 않는 현상이 있습니다. Problems탭을 보면 다음과 같은 메시지가 보입니다.
Project facet Java 5.0 is not supported by target runtime Apache Tomcat v5.0
Java5.0은 Apache Tomcat v5.5 이상과 맞기 때문입니다.

해당 라인을 선택하고 Quick Fix 메뉴를 선택합니다. (ctrl+1 또는 command+1)

Quick Fix 창이 나오기는 합니다만 막막합니다. 그냥 Create a new runtime environment 선택된 상태에서 Finish 버튼을 클릭합니다.

Runtime Environment 에 Apache Tomcat v6.0을 선택합니다.

프로젝트 Clean...을 선택해서 다시 빌드합니다.

그냥 전체 class 다 지우고 빌드를 몽창 다 해버렸습니다.

말끔하게 해소되지 않는군요.
Java project facet과 자바컴파일러가 맞지 않는다는군요.

Quick Fix를 클릭하니 옵션이 두 개가 나왔습니다. 그냥 6.0을 하니 Apache Tomcat v6.0과 Java6.0은 또 어울리지 않는다는군요. 쩝.

프로젝트 프로퍼티창을 열어봅니다.

facet으로 검색을 해 봤습니다. Project Facets라는 것이 나옵니다.

이 항목에서 5.0으로 맞춰주었습니다.

Targeted Runtimes는 Apache Tomcat v6.0이 선택되어 있습니다.

Project > Clean... 과정을 다시 해보면 Facet 오류가 사라졌을 것입니다.

자신과의 싸움이 이리도 어려운 것인지 다시 한 번 실감합니다. 책을 쓰겠다고 10월 10일 회사를 나왔습니다. 나오기 전의 비장감과는 달리 세 달이 다 되어가지만 아직 120페이지 정도도 못 썼네요. okjsp의 TechTrend를 만들기는 했지만 이것은 삼일 동안 작업한 것이었습니다. 스윙댄스 동호회에서 아내와 즐겁게 보낸 시간도 있지만 집필의 진도가 안 나가는 것에 대한 핑계일 뿐입니다.

마음을 잡지 못하는 것이 가장 큰 것인 것 같습니다. 이런 저런 생각을 하다보면 8권이나 집필한 최범균님이 대단해 보입니다. 요즘은 블로그도 두 개나 관리하고 계시네요. ^^;

이럼에도 불구하고 오늘 저녁은 rath옹과 저녁 번개를 만들었습니다. 책은 Out of 안중인 듯 합니다. ㅡㅡ;

돈 벌러 나가야 할텐데 말이죠.

dw 기사를 보다가 JSDT(JavaScript Development Toolkit)를 알게 되었습니다. JavaScript 자동완성에 실시간 문법체크를 해줍니다. 어~ 좋은데, 그런데 어떻게 설치하지 찾아봤습니다만 WTP3.0 (Ganymede JEE 버전과 동일합니다.)에 기본적으로 포함되어 있더군요.

다음 이미지를 보시면 알 수 있듯이 다른 js 파일에서 선언된 변수도 가져다 쓸 수 있습니다.

위키를 보니 JSDT는 ATF(Ajax Toolkit Framework) 프로젝트의 서브 프로젝트로 진행중이네요.

JSDT에 대해 잘 요약된 DW기사도 일독을 권합니다.

이클립스 3.4 JEE버전에서는 톰캣을 자동으로 다운받는 기능이 추가되어있군요.
사용자 삽입 이미지

Download and Install 메뉴가 보입니다.
선택하고 다운로드가 마치면 사용할 수 있군요.

오늘 코드 리뷰 중에 프로젝트 팀원의 노트북에서 찾아낸 정보입니다.

사용자 삽입 이미지


생명연장의 꿈입니다.
오늘 오전 이클립스 웹개발 강의를 무사히 마쳤습니다. 9시에 맞춰서 가게 되었는데, 가자마자 일찍 오신 분들에게 에이콘출판사에서 지원해 주신 책 5권을 선물로 드렸습니다.
여러 번 해온 강의라 2시간은 금방 지나갔고, 크게 무리수가 있지는 않았습니다.
eclipse WTP의 전체적인 구조와 설명과 톰캣을 연결해서 사용하는 방법, 그리고 JSP, 빈즈, 서블릿 만드는 방법에 대해서 설명했습니다.
웹서비스 개발방법에 대해서는 블로그에 올린 글을 기준으로 간략하게 설명을 드렸습니다.

매달 진행하는 강의들 좀더 알차게 해야겠다는 생각을 해봅니다.
말씀드린대로 강의 자료는 참석하신 분들에게 메일로 보내드리겠습니다.

개인적인 사정으로 이번 강의 동영상 촬영은 하지 못했습니다. 기대하셨던 분들에게는 미안합니다.

서블릿, 자바로 웹 애플리케이션을 만들기 위해 최초로 나온 기술입니다. 이후 JSP로 서블릿의 약점을 보완했지만, 스트럿츠, 스프링 등의 프레임워크가 득세하면서 다시 관심을 받게 됩니다. 하지만 예전처럼 순수 서블릿의 활용은 많이 없어졌습니다. 프레임워크에 종속된 개발을 많이 하게 되죠.

일단 가장 간단한 서블릿을 만들어보겠습니다. servlet이라는 Dynamic Web Project를 만들고 프로젝트 이름에서 New > Servlet 을 선택합니다. src 아래서는 Servlet 항목이 나오지 않습니다.

사용자 삽입 이미지

net.okjsp 패키지에 HelloServlet 이라고 이름을 주었습니다. *Servlet과 같이 서블릿 클래스의 명명규칙을 가져가는 것이 좋습니다.
사용자 삽입 이미지

URL mapping 이라는 것이 있습니다. 스트럿츠 이후 *.do 라는 매핑이 유명해졌는데, 서블릿 컨테이너에서 들어온 request URL의 패턴에 따라서 매칭되는 서블릿을 호출하게 됩니다. /hello 라는 URL mapping을 추가합니다.
사용자 삽입 이미지

패키지 익스플로러에 HelloServlet.java 파일이 생겼습니다.
사용자 삽입 이미지

함께 생성된 소스입니다. 일반적으로 주소를 치고 들어가는 것은 GET방식으로 호출합니다. 때문에 doGet() 이라는 메소드가 호출이 됩니다. doPost() 메소드는 form 태그에서 method="post" 와 같이 호출할 때 실행이 됩니다. POST방식의 호출이죠.
사용자 삽입 이미지

doGet() 내용을 다음과 같이 적어줍니다.

  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  out.println("<h1>Hello World</h1>");
  out.close();


실행은 JSP와 동일합니다. HelloServlet 파일을 선택하고 Run As > Run on Server 로 실행합니다.

사용자 삽입 이미지

기본 매핑에 따라서 http://localhost:8080/servlet/HelloServlet 주소로 실행이 됩니다.
사용자 삽입 이미지


http://localhost:8080/servlet/hello 로 다시 접속을 해도 같은 서블릿이 실행됩니다.
사용자 삽입 이미지


서블릿의 단점이라 한다면 태그가 문자열 안에 들어가기 때문에 " 는 \" 로 표기해야하고 번잡스러워집니다. html 소스가 바뀌면 일이 커지죠. 때문에 JSP 기술이 나오게 된 것이구요.

하지만 JSP가 Javascript를 비롯해 비즈니스 로직과 프리젠테이션 코드들의 스파게티 소스로 변해가자 로직은 Servlet에서 처리하고 결과값을 JSP에서 보여주는 형식으로 즉 MVC(Model View Controller) 형태의 코드로 관리되는 쪽으로 변해왔습니다. MVC 프레임워크들의 탄생 배경이죠.

이클립스로 쉽게 웹서비스 시작하기에 이어지는 글입니다.
simplews 프로젝트 하나에서 3개의 프로젝트가 더 늘어났습니다.
일단 기존 simplews의 변화부터 살펴 보겠습니다.
svn에 최초 버전을 기록해 놓았기 때문에 Synchronize 뷰를 통해서 파일의 변경내역을 확인할 수 있습니다.

사용자 삽입 이미지


web.xml 파일만 변경이 되었고, 나머지 디렉토리와 파일들은 새롭게 생성되었습니다.
파일 확장자의 변화를 보면 *.wsdd, *.jar, *.wsdl 이렇게 생성이 되었습니다.

디렉토리의 변경도 볼 필요가 있는데, WebContent/WEB-INF/ 아래 생긴 것과 WebContent 으로 나눠 볼 수 있습니다. WebContent/ 디렉토리는 컨텍스트 루트이고, WebContent/WEB-INF/ 디렉토리는 브라우저를 통해서 접근할 수 없는 서버 내부적 디렉토리입니다. 결국 WebContent/wsdl/ 디렉토리가 외부로 공개되는 자원이라고 생각할 수 있습니다. 파일이 하나 있는데, 이름이 자바파일 이름과 같고, 확장자가 wsdl 이네요.

WEB-INF/lib 디렉토리에 추가된 jar 파일을 살펴보겠습니다.
axis.jar : 웹서비스용 컴포넌트입니다.
http://axis.apache.org/
commons-discovery-0.2.jar : 서비스 발견 컴포넌트입니다.
http://commons.apache.org/discovery/
commons-logging.jar : 로깅에 관련된 컴포넌트.
http://commons.apache.org/logging/
jaxrpc.jar : 자바 xml rpc 컴포넌트
https://jax-rpc.dev.java.net/
saaj.jar : SOAP with Attachments API for Java (SAAJ)
http://java.sun.com/webservices/saaj/docs.html
wsdl4j-1.5.1.jar : Web Services Description Language for Java
http://sourceforge.net/projects/wsdl4j

이러한 컴포넌트들이 자동으로 붙게 됩니다.

+ Recent posts