'56. Eclipse Etc.../Eclipse'에 해당되는 글 65건

  1. 2009.09.25 Google Plugin for Eclipse 3.5(Galileo) 이클립스 3.5 용 구글 플러그인
  2. 2009.09.03 eclipse OutOfMemoryError: PermGen space 1
  3. 2009.09.03 Eclipse Galileo 시작시 JVM 종료 에러 해결
  4. 2009.08.25 java jsp 소스 코드 정렬 플러그인
  5. 2009.08.25 java jsp 소스 코드 정렬 플러그인 1
  6. 2009.08.25 사람을 위한 자동화: Eclipse 플러그인으로 코드 품질 높이기
  7. 2009.08.20 eclipse comment_templates.xml ,code_templates.xml
  8. 2009.07.22 eclipse An error occurred while installing the items 1
  9. 2009.07.09 eclipse was 별 원격 디버깅 하기 1
  10. 2009.07.09 원격지의 소스 디버깅 하기 Eclipse Debugging
  11. 2009.07.09 [MyEclipse] 디버깅
  12. 2009.07.09 이클립스 소스비교
  13. 2009.06.27 eclipes 에서 커넥션풀설정 사용 하기(DAO)
  14. 2009.06.26 eclipse Out of memory 오류 관련 eclipse.ini 파일 수정
  15. 2009.06.26 eclipse 실행시 out of memory
  16. 2009.06.25 Eclipse Code Style Sample (You can import!)
  17. 2009.06.24 이클립스 플러그인 정리 1
  18. 2009.06.21 이클립스 디컴파일러 jad
  19. 2009.06.21 간단한 이클립스 TIP (메모리, workspace관련) 2
  20. 2009.06.11 이클립스 Ctrl + space(code assist) 안될 때 해결방법
  21. 2009.06.11 Eclipse 내, tomcat work디렉토리 위치. 1
  22. 2009.04.23 eclipse properties Editor [이클립스 설정파일 편집기-한글적용]
  23. 2009.04.22 이클립스 실행시 아래 에러문발생시 workspace in use or cannot be created, choose a different one
  24. 2009.04.04 [펌] 이클립스(Eclipse) 사용법
  25. 2009.04.02 이클립스 주석 템플릿 파일
  26. 2009.02.25 Eclipse 사용시 알아두면 좋은 유용한 단축키 모음
  27. 2009.02.18 Eclipse 플러그인으로 코드 품질높이기
  28. 2009.02.11 이클립스 설치후 깔아야할 플러그인들 ..
  29. 2009.01.29 [eclipse - 이클립스] Workspace in use or cannot be created, choose a different one. 이라는 메시지가 나타날때
  30. 2009.01.19 Eclipse 3.4 + DWR 테스트 환경 설정.
56. Eclipse Etc.../Eclipse2009. 9. 25. 20:42
반응형
구글에서 eclipse 3.5 버전용 플러그인을 오픈하였다.
Google App Engine Java SDK 1.2.2와 Google Toolkit SDK 1.7.0을 포함하고 있다.


Posted by 1010
반응형
OutOfMemoryError: PermGen space

  근래에 들어와서 위의 메세지를 띄우면서 이클립스가 죽는 경우가 많이 생겼다. 'out of memory'라는 단어만으로 단순히 메모리가 부족해서라고 생각했고, 웹검색을 통해서 이클립스를 실행할 때 JVM의 힙 메모리의 용량을 지정할 수 있는 방법을 찾아냈다.

  메모리를 넉넉하게 지정하고 사용하면서 한동안 보이지 않았던 위의 에러 메세지가 얼마 전 부터 다시 보이기 시작했다. 또 다시 웹 검색을 시작했다. 덕분에 오늘 많은 것들을 배울 수 있었다.

  자바의 Heap공간은 내가 알던 것 보다 더 많은 부분으로 나누어져 있다는 것을 알게 되었고 더불어 GC(Garbage Collection)에 대한 부분도 몇 가지 GC알고리즘이 있고 그 중 어플리케이션의 사용 환경에 따라 선택하여 사용할 수 있게 하는 JVM옵션이 있다는 것도 알았다.


New/Young(신세대 힙)
- 객체가 생성되자마자 저장되고, 생긴지 얼마 안된 객체가 저장되는곳. 이 곳에 있는 객체들은 시간이 지남에 따라 우선순위가 낮아지면서 Old영역으로 옮겨진다.

Old 영역(구세대 힙)
- New/Young 영역에 저장되었던 객체중에 오래된 객체가 이동되어 저장되는 영역

Perm 영역(영구세대 힙)
- Class, Method 등의 Code 등이 저장되는 영역. JVM에 의해서 사용된다.


  JVM의 Heap공간은 위의 3가지가 있는데, 내 문제는 그 중에서도 Perm영역의 메모리 공간이 부족했던 것 같다. 이클립스의 WTP를 쓰다보면 클래스의 양이 늘어남에 따라 Permanent generation의 공간이 부족하게 되고, 부족하게 되면 종종 이클립스가 'OutOfMemoryError: PermGen space'에러를 내 뿜으며 쓰러지곤 한다고 한다는 글들을 발견했다.

-vmargs
-Xverify:none
-XX:PermSize=64M
-XX:MaxPermSize=256M
-Xms256m
-Xmx512m

    해결 방법으로 이클립스에 위의 내용처럼 옵션을 줘서 사용하기로 했다.

  이클립스 뿐만 아니라 JVM을 사용하는 어플리케이션에서 메모리로 인한 에러가 발생한다면 메모리 관련 JVM옵션을 사용 해 주면 해결되니 좀 더 관련 자료를 봐 두기로 했다.


  도움이 많이 되었던 문서들을 블로그에 남긴다.S


출처 : http://signpen.net/blog/2510863
Posted by 1010
반응형

오늘 부터 eclipse galileo에 flash builder를 얹어서 사용하려고 새로나온 galileo를 깔았더니, 이런 에러는 내뱉었습니다.


흠...

초기화가 문제로 보여져서 ecslipse.ini파일을 편집해 봤습니다.


eslipcse.ini 내용

-startup
plugins/org.eclipse.equinox.launcher_1.0.200.v20090520.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-product
org.eclipse.epp.package.jee.product
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m

-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m

빨간색으로 표시한 부분이 웬지 석연치 않습니다. 그래서 다음과 같이 변경했습니다.


-startup
plugins/org.eclipse.equinox.launcher_1.0.200.v20090520.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-product
org.eclipse.epp.package.jee.product
-launcher.XXMaxPermSize
256m
-showsplash
org.eclipse.platform
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m

-- 을 -로 변경하고 M을 m으로 변경했습니다.  그리고 중복적인 구문이라 제거했습니다.

어짜피 주석 처리했던 것이니 제거하셔도 무방합니다. 해당 매개 변수는 이클립스가 실핼 될 때 할당될 최대 메모리 사이즈로 보입니다.



실행됩니다. ㅡ,.ㅡ;;
주석 처리를 하려면 제대로 해야죵~

이클립스 개발자님들~  고쳐주세요~ ^^


출처 : http://lovedev.tistory.com/482
Posted by 1010
56. Eclipse Etc.../Eclipse2009. 8. 25. 17:34
반응형

Overview

The source code beautifier originally built by Marco Hunsicker and enhanced for Java 5 by Steve Heyns.

This version is NOT the same as the version at TRIEMAX. For information about the commercial version click here

An updated manual will (hopefully) be available soon

Please refer to this documentfor a complete list of features.

Versions

Latest version available for download is 0.3.1. It works with Eclipse 3.0, and should also with 2.x stream builds. Also please note that the PDE Plugin doesnot support OSGI Bundles yet.

Installing

Download the appropiate plugins for installing the code from the sub-projects listed on the menu to the left

Posted by 1010
56. Eclipse Etc.../Eclipse2009. 8. 25. 17:34
반응형

Overview

The source code beautifier originally built by Marco Hunsicker and enhanced for Java 5 by Steve Heyns.

This version is NOT the same as the version at TRIEMAX. For information about the commercial version click here

An updated manual will (hopefully) be available soon

Please refer to this documentfor a complete list of features.

Versions

Latest version available for download is 0.3.1. It works with Eclipse 3.0, and should also with 2.x stream builds. Also please note that the PDE Plugin doesnot support OSGI Bundles yet.

Installing

Download the appropiate plugins for installing the code from the sub-projects listed on the menu to the left

Posted by 1010
56. Eclipse Etc.../Eclipse2009. 8. 25. 17:21
반응형

이 글에서는 "5대" 코드 분석 영역에 대해 설명하겠다.

  • 코딩 표준
  • 코드 중복
  • 코드 커버리지
  • 의존성 분석
  • 복잡성 모니터링

이러한 분석 영역들은 다음과 같은 Eclipse 플러그인을 사용한다.

  • CheckStyle: 코딩 표준
  • PMD의 CPD: 코드 중복 발견
  • Coverlipse: 코드 커버리지 측정
  • JDepend: 의존성 분석 제공
  • Eclipse Metrics 플러그인: 복잡성 탐지


표 1. 코드 향상 플러그인과 설치 URL 리스트
목적 Eclipse 플러그인 URL
CheckStyle 코딩 표준 분석 http://eclipse-cs.sourceforge.net/update/
Coverlipse 코드 커버리지 테스트 http://coverlipse.sf.net/update
CPD Copy/Paste 탐지 http://pmd.sourceforge.net/eclipse/
JDepend 패키지 의존성 분석 http://andrei.gmxhome.de/eclipse/
Metrics Complexity monitoring http://metrics.sourceforge.net/update

Posted by 1010
56. Eclipse Etc.../Eclipse2009. 8. 20. 15:03
반응형
java 코드 코멘트



java 코드 포멧


Posted by 1010
56. Eclipse Etc.../Eclipse2009. 7. 22. 15:46
반응형


An error occurred while installing the items
  session context was:(profile=epp.package.jee, phase=org.eclipse.equinox.internal.provisional.p2.engine.phases.Install, operand=null --> [R]com.android.ide.eclipse.adt 0.9.1.v200905011822-1621, action=org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction).
  Error while loading manipulator.
  Error while loading manipulator.

사용자 삽입 이미지



eclipse update error



subeclipse 를 설치해서 에러를 잡을수있다.
subeclipse 설치는 알아서 하시길...
Posted by 1010
반응형

사용자 삽입 이미지
Remote Debug

개요

원격 컴퓨터의 WAS(Jboss, JEUS, WebLogic)에서 실행되는 어플리케이션에 대한 디버깅 기능을 제공한다.

설명

Java 디버거의 클라이언트/서버 디자인을 사용하면 네트워크에 있는 컴퓨터에서 Java 프로그램을 실행하고 플랫폼을 실행하는 워크스테이션에서 이 프로그램을 디버그 할 수 있다.

참고 : 원격 디버깅을 사용하려면 이 기능을 지원하는 JVM을 사용하고 있어야 합니다.

디버깅 절차

  1. Java 프로그램 빌드
  2. Java 프로그램 원격 컴퓨터에 Deploy
  3. 원격 컴퓨터에 JVM 옵션 설정 후 서버 구동
  4. 워크스테이션에서 원격 컴퓨터의 주소 및 포트를 지정하여 디버깅

환경설정

원격 디버깅을 위해서는 원격 컴퓨터의 WAS 서버 시작시 JVM 옵션에 다음과 같은 내용을 추가해야 한다.

  -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

Jboss

run 배치 스크립트 파일의 JAVA_OPTS변수에 위 옵션을 추가한다.

  set JAVA_OPTS=-Xdebug 
  -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n 
  %JAVA_OPTS%

JEUS

JEUSMain.xml의 컨테이너 설정의 command-option에 아래 부분을 추가한다.

  -Xdebug -Xnoagent 
  -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n 
  -server

Weblogic

startWebLogic 배치 스크립트 파일의 JAVA_OPTS변수에 위 옵션을 다음과 같이 추가한다.

  set JAVA_OPTS= -Xdebug -Xnoagent 
  -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n 
  %JAVA_OPTS%

위와 같이 지정하면 8000 포트를 이용하여 원격 디버깅이 가능하도록 지원하겠다는 의미이다.

사용법

원격 Java 응용프로그램 실행 구성을 작성하려면 다음을 수행한다.

  • Workbench 메뉴 표시줄에서 Run > Debug Configurations…을 선택하여 실행 구성 대화 상자를 표시한다.
    사용자 삽입 이미지
  • 왼쪽 구성 유형 목록에서 Remote Java Application을 선택한다.
  • New launch Configuration 도구 모음 단추를 클릭한다. 새 원격 실행 구성이 작성되고 Connect, Source, Common의 세가지 탭이 표시된다.
    사용자 삽입 이미지
    사용자 삽입 이미지

  • 연결 탭의 프로젝트 필드에서 실행의 참조(소스 찾아보기용)로 사용할 프로젝트를 입력하거나 찾아서 선택한다.
  • 연결 탭의 호스트 필드에서 Java 프로그램이 실행될 호스트의 IP 주소 또는 도메인 이름을 입력한다. 프로그램이 Workbench와 동일한 시스템에서 실행되고 있으면 localhost를 입력한다.
  • 연결 탭의 포트 필드에서 원격 VM이 연결을 허용할 포트를 입력한다.
  • 원격 VM 종료 허용 플래그는 디버거에서 종료 명령을 사용 할 수 있는지 여부를 토글하여 판별합니다. 연결 중인 VM을 종료할 수 있도록 하려면 이 옵션을 선택한다.
  • 디버그를 클릭한다.
  • 디버그 퍼스펙트브로 변환하면 원격 컴퓨터의 Thread정보가 표시 된다.

 

  • 디버깅 할 프로그램의 특정 위치에 중단점을 설정 한 후 해당 프로그램이 실행되도록 웹브라우저를 이용하여 서비스를 호출한다
Posted by 1010
반응형
자바(Java)는 디버깅 모드를 지원한다. JVM을 시작할 때 확장 옵션으로 -Xdebug 옵션을 주면 된다. 이 옵션과 함께 다른 옵션을 주게 되면 원격지에서 실행되고 있는 프로그램을 중단 시키지 않고 (NonStop) 중간에 끼어들어 디버깅할 수 있다. 서비스 중인 서버에 문제가 생겼을 때 소스 코드만 가지고 있다면 원격지에서 바로 접속해서 디버깅을 할 수 있다. 한 마디로 옴팡 멋진 기술이다. TㅅT

특히 웹 서버에서 동작 중인 서비스이거나, 개발 장비와 실제 테스트하는 장비가 다른 경우 유용하게 사용될 수 있다. 그리고 꼭 기억해 둬야할 점은 디버깅을 하려는 것이니 리모트에서 동작하는 것과 같은 소스 코드가 필요하다. =ㅅ=;;

간단하게 원격 디버깅을 할 때 사용되는 옵션들만 알아보자.
-Xdebug -Xnoagent -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n


-Xdebug - 디버그 모드로 JVM을 수행한다.
-Xnoagent - 기존의 디버그 모드가 아닌 JPDA를 사용한다.
-Xrunjdwp - JPDA의 옵션을 설정한다.
server=y - JVM과 디버거 중 누가 listen하고 누가 attach하는지 선택한다. "y"이면 JVM이 server socket을 열고 디버거가 주어진 포트로 attach하고, "n"이면 디버거가 먼저 소켓을 열고 listen하고 있으며 JVM이 해당 포트로 접속하게 된다.
transport=dt_socket - TCP/IP로 접속함을 나타낸다.
address=8000 - 8000번 포트(port)로 listen하거나 attach한다.
suspend=n - JVM이 처음 시작할 때 중지 상태(suspend)여부를 설정한다. "y"이면 디버거가 attach하기 전까지 코드를 수행하지 않고 suspend 상태로 대기한다. "n"이면 디버거의 접속 여부와는 상관없이 JVM은 먼저 동작한다.

우선 아래와 같이 옵션을 주고 JVM을 시작시킨다. JVM을 서버(server=y)로 8000번 포트(address=8000)를 listen하게 하자. 그리고 이클립스 원격 디버깅 설정을 시작한다.


이클립스의 메뉴 -> Run -> Debug Configurations...를 선택하여 아래와 같은 Debug Configurations 창을 열자. 왼쪽에 여러 디버깅 모드가 있다. Remote Java Application을 선택하고 새 디버깅 설정을 추가하면 오른쪽 화면과 같이 원격 디버깅 설정 화면이 나타난다.

Connection Type은 JVM의 옵션 중 server=y와 연관이 있는 것이다. JVM을 먼저 수행해 JVM이 해당 포트를 listen하고 이클립스가 attach하는 방식이라면, JVM은 "server=y" 옵션을 주고 이클립스는 "Standard (Socket Attach)"를 선택한다. 반대로 이클립스가 먼저 포트를 열고 listen하고 JVM을 나중에 동작시키는 경우는 이클립스를 "Standard (Socket Listen)"로 선택해서 먼저 수행하고 JVM을 "server=n" 옵션과 함께 나중에 동작시키면 된다.

앞에서 코드를 "server=y" 옵션으로 동작시켰으니 8000번 포트로 디버거가 attach하면 된다. 그리고는 열심히 디버깅하는거닷!!


개발한 코드를 원격지로 원터치 디플로이는 ant를 사용하거나 이클립스의 플러그인, View 등을 통해 가능하다. 웹 서버의 경우는 Java EE Perspective의 Servers View를 통해 서버를 추가하면 손쉽게 가능하다.

아래 그림의 가운데 목록에서 원하는 내가 사용하는 서버를 선택하자. 만일 존재 하지 않는다면 위쪽의 "Download additional server adapters"를 클릭해서 adapter를 추가한다. 그리고 아래쪽의 "Add..."나 "Configure runtime environments..."를 클릭해서 서버가 실제 있는 경로를 설정해 준다.





+ 다른 이클립스의 디버깅 기능은 여기를 보자.

+ 참고
WAS에서 동작하는 프로그램 원격 디버깅하기
Eclipse 플랫폼에서의 디버깅
eclipse: 리모트 디버깅, 디플로잉
UsingEclipseToDebugApplicationsOnNonStop.pdf
Posted by 1010
반응형

Debuging

 Windows > Open Perspective > Other...





툴바에서 아래의 이미지가 이미 나와 있다면 그냥 클릭하여 사용할 수 있다.




Debug view

위에 그림과 같이 디버그를 실행하면 아래의 그림과 같이 디버그 화면이 나온다.

이때 원하는 디버그를 하나 클릭하면 빨간 테두리 안에 있는 것들이 활성화 된다.




Variables view

variables를 선택하면 해당하는 부분의 사이즈나 값등의 정보를 볼 수 있다.




Breakpoints view

이 리스트에서 모든 작업 중인 프로젝트의  break point를 볼 수 있다.

이것으로 break point를 지우거나 새로운 것을 추가 할 수 있거나 할 수 없다.

또한 더블 클릭하면 에디터로 갈 수 있다.

이것은 exceptions을 추가 또는 삭제 가능하다.




Expressions view

각각의 클래스로부터 suspended thread와 다른 지역에서 이것을 보고 검사할 수 있다.
Item이 view에 추가될때 자동적으로 오픈된다




Debug a web project

http://www.laliluna.de/assets/tutorials/java-servlets-jsp-tutorial.zip

사이트에서 어떻게 디버깅하는지에 대해 다운 받을 수 있다.

아래의 그림과 같이 오른쪽을 더블클릭하면 파란 동그라미가 생기고 그 부분부터 디버깅이 된다.

 




Note: If you don't have installed MyEclipse, you can't set a breakpoint in jsp and included

 files.




Breakpoint Properties

생성된 파란 동그라미를 마우스 오른 버튼을 눌러 아래와 같이 Breakpoint Properties

선택한다.









Hit Count

The hit count sets a number of times the breakpoint can be executed before the thread

suspends. Very helpful in a loop expression or if you want to know the value of a expression

after some hits.

Enable Condition

There are two options to suspend a thread by using a condition.

  • if the enabled condition is true

  • if the enabled condition changes

If you want that the condition suspends the thread when it is true select the option condition

is true on Suspend when.

Example:

action.equals("edit");

If you want that the condition suspends the thread when the value of the condition changes

select the option value of the condition changes on Suspend when.


Suspend Policy

You can define if the breakpoint suspends only the thread or the complete virtual machine.

Deploy and Debug

Now we want to debug the project, so deploy it and call it in your web browser.
Choose Edit on the list of books.




After you clicked the Edit link, eclipse shows you the following confirm window. You can

choose if you want to switch to the debug perspective. Yes, you want it ;- )




The first entry in the debug view represents the state of the method where the breakpoint was

 set. You can preview the state of a entry simply by clicking on it, also the file will be open

where the method is placed.




You can see the values of all variables of the selected entry in the Variables view.




A marked line and an arrow at the breakpoint shows that the debugger is suspended on this

 line.




If you've decided that you missed an important place in the execution process, perhaps the

breakpoint was in the wrong place, or maybe you accidentally stepped over some code you

wanted to inspect earlier in the process. Eclipse has a feature called Drop to frame, that

essentially lets you 'rewind' the execution to the beginning of any method in the stack. This is

especially useful when you perform variable modification or code hot swapping.
Right click on the frame and choose the option
Drop to Frame.


Inspect expressions

To get informations about expression, you can inspect a expression. Right click on the marked

expression, you want to inspect and choose Inspect or press Ctrl + Shift + I. A pop-up

window appears that holds the informations about the expression.



Watch expressions


Watch is similar to inspect an expression. Watch means that the expression will be added to

 the Expressions view, where you can watch the informations about the expression. Add two

 expressions to the Expressions view.

Mark the expressions, right click and choose Watch.




Now the two expression are in the Expressions view.




Display expressions

If you want to display the type and the value of an expression, mark the expression and choose the Display option from the context menu (right mouse button) or press Ctrl + Shift +

 D.


Run to Line

If you set a breakpoint and somewhere under the breakpoint is a line you want to go, you can use the option Run to Line. The code between the breakpoint and the selected line will be

executed. Select the line you want to go, press the right mouse button and choose the option

 Run to Line or use the key binding Ctrl + R.


Debugging JSP files (supported by MyEclipse)


Debugging a JSP file is the same like debugging a Java class, but the most features (Watch,

Inspect, etc) are not implemented. The only way to get the values of variables is the Variables

view.


[출처] http://www.laliluna.de (랠리루나)

[출처] [MyEclipse] 디버깅|작성자 연서

Posted by 1010
반응형

이클립스에서 소스 비교는...

굳이 눈으로 하실 필요 없습니다.


package explorer 에서 ctrl + click 으로 비교할 파일 선택한 후 우클릭 해서 나오는 메뉴에서


Compare With > Each Other 로 비교하실 수 있습니다.


Posted by 1010
56. Eclipse Etc.../Eclipse2009. 6. 27. 12:25
반응형
이클립스에 Project Explorer 창에서

Servers에 Tomcat 폴더에 있는 server.xml 파일을 연다

사용자 삽입 이미지

1. server.xml에 아래와 같이 추가해준다.
<Context ~~~~~>이부분 밑부분에 아래코드 기입
            <Resource
              name="jdbc/ORCL"
              auth="Container"
              type="javax.sql.DataSource"
             driverClassName="oracle.jdbc.driver.OracleDriver"
             url="jdbc:oracle:thin:@ip:port:sid"
             username="scott"
             password="tiger"
             maxActive="25"
             maxIdle="5"
             maxWait="10000"/>
</Context>

사용자 삽입 이미지


주의: <context ~~~~ /> 부분에 /를 꼭 지워주자 (빨간색 O 표시 된곳)




위에 붙여놓은 코드에서 자신의 ip와 port번호 sid 명을 변경해준다
계정명도 알아서 변경해준다
사용자 삽입 이미지



사용자 삽입 이미지
<Resource name="jdbc/ORCL" auth="Container"
     type="javax.sql.DataSource"
     driverClassName="oracle.jdbc.driver.OracleDriver"
     url="jdbc:oracle:thin:@localhost:1521:ORCL" username="scott"
     password="tiger" maxActive="25" maxIdle="5" maxWait="10000" />
    </Context>



사용자 삽입 이미지
maxIdle="5"  부분을 2로 바꿔주자 .2만되도 왠만한 연결은 다 커버된단다;

이제 저장하고나온다

이제 자신의 현제 프로젝트에 web.xml을 열어본다
자신의 프로젝트>web(WebContent)>WEB-INF>web.xml
사용자 삽입 이미지


2. web.xml에 아래와 같이 추가해준다.
<web-app ....>
 <resource-ref>
     <res-ref-name>jdbc/ORCL</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
 </resource-ref>
</web-app>

사용자 삽입 이미지



위에 3파일을 자신의 프로젝트에 WEB-INF>lib 부분에 붙여넣어준다
사용자 삽입 이미지


이제 위의 DAO를 가지고 자신의 패키지명에 맞게 설정해서 잘 쓰면된다;

단 server를 지우게되면 Servers에 server.xml을 다시 설정해줘야한다;;;
Posted by 1010
56. Eclipse Etc.../Eclipse2009. 6. 26. 11:39
반응형
이클립스 3.x버젼을 쓰면서 갑자기 다운되거나 out of memory오류로 인해 오작동하는 문제가 자주 발생해 개발할때 짜증이 이만저만이 아니다.

명확한 원인도 모르겠고 검색해보면 permsize를 높여보라는 내용만 찾을 수있었는데..

이것이 Eclipse 3.3.1 버전의 런처가  Sun VM 을 인식못하는 버그가 있다는 사실을 알아냈다. (http://wiki.eclipse.org/FAQ_How_do_I_increase_the_permgen_size_available_to_Eclipse%3F)


이 현상과 유사한 것 같아서

vm을 직접 넣어주는 방식으로 변경하였다.

-showsplash
org.eclipse.platform
-vm
C:\java\jdk1.6.0\bin\javaw.exe
-vmargs
-Xms256M
-Xmx512M
-XX:PermSize=128M
-XX:MaxPermSize=512M


java.exe. 대신 javaw.exe 로 쓰고..

작업관리자에서 eclipse 프로세스와 별개로 javaw 프로세스가 뜨는 것 말고는 괜찮은 것 같다.
Posted by 1010
56. Eclipse Etc.../Eclipse2009. 6. 26. 11:37
반응형

츌처: http://kimkijeung.com/106

FDT를  3.0.2 build 1001  버전으로 업데이트를 하고 나서 이클립스에 메모리가 부족하다는 메시지가 생겨났다. 이전까지 별 무리없이 쓰고 있었는데 작업을 앞두고 갑자기 먹통이 되어버리니 참 답답할 노릇이였다. 아마도 여러가지 기능이 추가되면서 필요로 하는 메모리가 늘어난듯 싶다.
찾아보니 fdt 포럼에도 이같은 문제가 제기되었는데 단순히 아래 메시지가 나오는 것과
같이 설치폴더에 있는 eclipse.ini 환경설정 파일의 메모리 최대 사용량을 늘려주라는 이야기 뿐이였다.

 

물론 메로리 설정을 변경하고 이상이 없다면 다행이지만 나의 경우에는 -Xmx512 로 설정할 경우
eclipse 런처가 실행조차 안되는 문제가 발생한다.
한참만에 이것이 Eclipse 3.3.1 버전의 런처가  Sun VM 을 인식못하는 버그가 있다는 사실을 알아냈다. (http://wiki.eclipse.org/FAQ_How_do_I_increase_the_permgen_size_available_to_Eclipse%3F)

따라서 이러한 문제를 해결하려면  eclipse.ini 파일을 약간 수정해야한다.
 
<original eclipse.ini>
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize   -------> remove

256m                        -------->remove
-vmargs
-Xms40m
-Xmx256m                  ------> replace -Xmx256m to -Xmx512m


 eclipse.ini 을 열면 위와 같은 코드를 볼 수 있을 것이다.
FDT3.0 을 위해 최대 사용할 메모리를 늘리려면  맨 아래줄의 -Xmx256m 부분의 숫자 부분을 512 이상으로 변경해주면 된다. (자신의 메모리 용량에 따라 512이상으로 적절하게 설정해주면된다.)

그리고 붉은색 코드부분을 모두 삭제해준다.

<revised eclipse.ini>
-showsplash
org.eclipse.platform
-vmargs
-Xms40m
-Xmx512m

Posted by 1010
56. Eclipse Etc.../Eclipse2009. 6. 25. 10:02
반응형

I have two examples about eclipse coding style in java language based on eclispe.
Standard code style give to understand and analyze codes.
Download file xml file can be imported to your eclipse 3.X. And it is close to java code convention.

<Imporing Code Templates Sample>
In Eclipse, you may follow belows orders.
Window -> Preferences -> Java -> Code Style -> Code Template

You will see that pop up window. To import, you may clock Import button on the window, and you will see file explorer, and choose the downloaded sample file "CodeTemplates_sample.xml"




<Imporing Formatter  Sample>
In Eclipse, you may follow belows orders.
Window -> Preferences -> Java -> Code Style -> Formatter

u will see that pop up window. To import, you may clock Import button on the window, and you will see file explorer, and choose the downloaded sample file "Formatter_sample.xml"
l

After clicking import button, you will see below pop-up window.
You can assign your formatter policy by choosing their options.
Posted by 1010
56. Eclipse Etc.../Eclipse2009. 6. 24. 18:00
반응형
개발하면서 쓰고 있는 플러그인과 그외 유용한 플러그인을 정리해보았습니다.
사실은 매번 설치할때마다 뭐가 어디있는 지 다시 뒤적거리는 귀찮음이 싫어서 정리를 했다라는.. /(^o^)/


■ 이클립스 플러그인 관련 사이트

http://www.eclipse-plugins.info 간단한 플러그인 정보와 인기도(?) 확인 가능
http://www.sourceforge.net 각종 이클립스 플러그인 프로젝트들이 등록되어있음
http://www.eclipseplugincentral.com 플러그인 쇼핑몰, 포럼


■ DB 플러그인

1) Quantum DB (http://sourceforge.net/projects/quantum/)

왼쪽 북마크에 접속하고자 하는 DB 추가하고 환경잡기(ID, 비번, 접속드라이버 등)
원하는 북마크를 오른쪽버튼 클릭해서 DB에 connect한 후 오른쪽 쿼리 에디터에서 쿼리.

[참고]
- 오라클 JDBC드라이버 : C:oracleora81jdbclibclases12.zip 찾아서 추가 (oracle.jdbc.driver.OracleDriver)
- connection URL : jdbc:oracle:thin:@000.00.00.000:1521:ORACLE8

2) dbedit (http://sourceforge.net/projects/dbedit/)

3) jfacedbc #상용# (http://sourceforge.net/projects/jfacedbc/)

소스포지에 있는 버전은 2.X 버전이고 3.0부터는 상용으로 http://www.jfacedbc.com/ 에서 다운/구매 가능 (기능은 확실히 좋을 듯...)



■ XML 플러그인

1) XMLBuddy http://www.xmlbuddy.com/
XMLBuddy pro는 #상용#입니다.

2) oxygen #상용#
url update : http://www.oxygenxml.com/InstData/Eclipse/site.xml

3) MyEclipse Enterprise Workbench #상용# (http://www.myeclipseide.com)
MyEclipse 설치하면 깔리는 XML 에디터.

4) 그 외 JXMLEditor, MetaCoder , Sunbow , X-Men, XML Schema Quality Checker



■ J2EE 개발 플랫폼

1) Lomboz (http://forge.objectweb.org/projects/lomboz)
롬보즈를 쓰기 위해서는 EMF(http://www.eclipse.org/emf)도 깔려있어야 함

2) MyEclipse Enterprise Workbench #상용# (http://www.myeclipseide.com)



■ JSP 에디터 플러그인

1) SolarEclipse (http://sourceforge.net/projects/solareclipse/)
jsp 하이라이팅 기능만 있음

2) Lomboz jsp editor (http://forge.objectweb.org/projects/lomboz)
롬보즈 설치하면 깔리는 jsp 에디터. 코드 어시스턴스 기능 있음.

3) MyEclipse Enterprise Workbench #상용# (http://www.myeclipseide.com)
MyEclipse 설치하면 깔리는 jsp 에디터. 롬보즈가 저장 시 에러 체크를 하는 반면, 실시간으로 에러 체크를 한다고 함.



■ 각종 플러그인

1) Yoxos ( http://www.yoxos.com/ )

유용한 플러그인들을 묶어 프로그램 인스톨하는 형식으로 배포.
종류별로 잘 분류되어 있고 설치시 필요한 플러그인만 선택하여 설치 가능.

2) subversion (svn) 플러그인
url update : http://subclipse.tigris.org/update

3) SWT/Swing 디자이너 #상용# http://www.swt-designer.com/




■ 플러그인 설치

1) 설치유형 1 : 복사
받은 플러그인 파일을 C:eclipseplugins 에 복사하고 재시작

2) 설치유형 2 : url update
Help > Software Updates > Find and Install 메뉴 선택
"search for new features to install" 선택후 next 버튼
new remote site 버튼을 클릭하여 플러그인명과 url update 주소를 입력하면 다운 받을 수 있다.

3) 플러그인 설치 문제 해결

복사해서 플러그인을 설치 할 때 가끔 반영이 안되는 문제가 있다.
똑같이 설치를 해도 잘 되는 컴이 있는가 하면 그렇지 않은 것도 있으니... -_-a
처음 실행 이전에 플러그인을 모두 복사해야 정상작동할 듯 싶다. 일단 실행 이후에 플러그인을 추가 설치하면 간혹 말썽이다.

첫째, Help > Software Updates > Manage Configuration 에서 설치되지않은 것들이 있으면 enable 시켜준다.
이렇게 해서 해결 된다면 제일 편하게 해결된 것.

둘째, eclipse 폴더 아래 configuration 폴더를 지우고 재시작.

셋째, 이래도 안 깔리면.... 이클립스를 아예 새로 풀고 플러그인들 먼저 다 복사해 둔 후 최초실행 시킨다.
Posted by 1010
56. Eclipse Etc.../Eclipse2009. 6. 21. 04:17
반응형




이클립스 디컴파일러인 JAD를 설치하는 방법입니다.


이클립스로 개발을하다보면 F3버튼으로 열심히 따라가는 경우가생깁니다.


그러다 라이브러리로 묶여있는 클래스파일들을 로딩하게되면 읽긴읽되 내용을 분석하지못하죠~


그래서 디컴파일러 ~ 컴파일한클래스파일을 다시 자바파일로 보여주는 도구를 설치하게되면


클래스파일도 자바파일처럼 열수있게됩니다^^~



우선 jad.exe, jadclipse_3.1.0.jar를 다운로드 합니다.


jad.exe파일은 이클립스 폴더에 jadclipse_3.1.0.jar파일은 플러그인 폴더에 카피합니다.


window->preference->general->editors->file assosiationsd에서 *.class선택후


하단의 JadClipse Class File Viewr 를 선택후 default 를 선택합니다.


window->preference->java->JadClipse를 선택한후 ignore existing source를 체크해줍니다.


이렇게하시고 이클립스를 실행시키시면 *.class파일을 찾아갈경우 자동으로 디컴파일해줍니다~



ps. 제가 올리는 버전은 jdk1.4.2버전, eclipse 3.1버전의 디컴파일러입니다.


jaclipse버전은 아래링크에서 맞는버전으로 다운로드하시면 됩니다.

http://sourceforge.net/projects/jadclipse


문의는 이메일로요...

Posted by 1010
56. Eclipse Etc.../Eclipse2009. 6. 21. 04:15
반응형






아실만한 분들은 다 아시는 TIP이라 중복될지도 모르겠지만 제가 아는게 이거 하나라 올려보겠습니다..^^;;


우선 바탕화면이나 빠른실행에 있는 eclipse의 바로가기 아이콘의 등록정보를 열면


바로가기 대상이 있습니다. 이것을 설정하여 workspace와 memory를 조절할 수 있는 팁입니다.


기본 적으로 다음과 같이 되어 있습니다.


C:\eclipse\eclipse.exe


여기서 몇가지 항목을 추가하겠습니다.


-data : workspace로 지정할 디렉토리를 절대경로로 지정.

예) -data C:\workspace\

-vmargs : momory를 얼마나 지정할 것인지 최소 값과 최대값을 지정.

예) 최소값 128M, 최대값 256M : -vmargs -Xms128m -Xmx256m


보통 workspace는 기본으로 사용하지만 특정 디렉토리를 정해서 프로젝트를 관리할때


위와 같이 지정해 주면 편리하죠.


또한 이클립스가 무거운 editor로 유명하지만 메모리를 충분히 늘려준다면


코딩하다가 이클립스가 죽어버리는 경우를 미연에 방지할 수 있으니 유용한 팁이라 생각합니다.


추가로 이클립스에서 메모리를 관리하는 plugin하나 추가합니다.


사용법은 압축을 풀어주시고 단순히 플러그인 폴더에 추가하신뒤에


이클립스를 다시 로딩시키시면 추가됩니다.


--------------------------------


메모리 확인 Plugin

다운로드 사이트정보


 http://www.kyrsoft.com/downloads/downloads.html
    >  다양한 플러그인들을 확인할수 있다.


설치된 Eclipse 폴더에 덮어 씌운후.. 이클립스 실행하면 다음과 같이 화면 하단에 추가된다.

사용자 삽입 이미지



Posted by 1010
56. Eclipse Etc.../Eclipse2009. 6. 11. 16:15
반응형
Posted by 1010
56. Eclipse Etc.../Eclipse2009. 6. 11. 16:10
반응형
tomcat 에 임시파일이 계속 남아있어 1시간 정도 삽질한 경험이 있다...
web.xml 에서
jsp compile refresh 설정을 했어야 했는데;;
안 했더니.... 꼬임 현상이 일어났던 것이다;; 아놔..  (추후 설정은 추가..)

재성 아저씨가 work 디렉토리를 알려 주셨는데..

대략 (뭐 거의 똑같겠지만...)

Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work

이 위치에 존재 한다.. (tmp0 의 의미는 Eclipse 내 추가했던 서버의 index 여부 였던것 같다.. )
아무튼 이와 같은 삽질을 다시는 안했으면.. OTL....
Posted by 1010
56. Eclipse Etc.../Eclipse2009. 4. 23. 15:23
반응형
용도
.properties 파일에서 한글을 쉽게 사용할 수 있게 해준다.

설치방법
 - 자동설치

설치순서
Step1.이클립스를 실행시킨다.
Step2."Help > Software Updates > Find and Install..." 을 선택한다.
사용자 삽입 이미지

Step3.Search for new features to install"을 선택한다.
사용자 삽입 이미지


Step4.New Remote Site 를 클릭한 후 아래의 내용을 입력한 후 확인을 클릭한다.
사용자 삽입 이미지
Name: Properties Editor
URL: http://propedit.sourceforge.jp/eclipse/updates/

Step5.위에서 추가한 사이트가 보입니다.(1)
이제 Finish를 클릭하여 다음으로 진행합니다.
사용자 삽입 이미지

Step6. Update Manager가 실행되고 나면 아래의 화면이 표시되면
PropertiesEditorForEclipse3.x 와 viPlugin3.0.x에 체크한 후 Next를 클릭한다.
사용자 삽입 이미지

Step7.라이센스에 동의한 후 Next를 클릭한다.
사용자 삽입 이미지

Step8.설치경로와 기타 정보를 확인한 후 Finish를 클릭한다.
사용자 삽입 이미지

Step9.최종적으로 설치될 플러그인을 확인하고 Install All 을 클릭한다.
사용자 삽입 이미지

Step10.설치가 완료되면 아래의 화면이 표시된다.
사용자 삽입 이미지

확인을 클릭하면 자동으로 재시작한다.

환경설정
이클립스를 실행한 후 "Windows > Preference"를 클릭하면 아래와 같은 화면이 표시된다.
사용자 삽입 이미지
플러그인과 관련되어 새로 생성된 환경설정 메뉴이다.
Duplication Key 메뉴를 클릭한 후 Check a duplication key에 체크해준다.

사용예시
Properties Editor 사용전

Properties Editor 사용전


Properties Editor 사용후

Properties Editor 사용후

Posted by 1010
56. Eclipse Etc.../Eclipse2009. 4. 22. 16:31
반응형

이클립스 실행시 아래 에러문발생시


workspace in use or cannot be created, choose a different one



1. eclips 프로세스를 강제로 종료 시키거나

2. workspace/.metadata 폴더의 .lock 파일 삭제

출처 : Tong - [통]메탈퀸님의 Eclipse통

Posted by 1010
반응형
1. 개요
문서는 IBM 이클립스의 기본적인 사용법을 설명한 것으로, 따라하기 식으로 서술되어 있다. 이클립스 홈페이지(www.eclipse.org) FAQ 이클립스 도움말을 참조하였다.
2. 화면 구성
이클립스에는 작업의 성격에 따라 여러 perspective 존재한다. 이클립스를 실행시켜보면 화면 왼쪽에 다음과 같은 버튼들이 보인다.
자바 perspective로서 자바 패키지를 기준으로 자바 파일들이 보여진다.
리소스 perspective로서 디렉토리와 파일명을 기준으로 자바 파일들이 분류된다.
자바 브라우징 perspective로서 자바 퍼스펙티브처럼 자바 패키지를 기준으로 분류가 이루어지지만, 그러한 분류가 이루어지는 모양새가 다음과 같다.
CVS 저장소 perspective인데, CVS 대해 모르는 관계로 설명을 하지 않겠다.
디버그 perspective로서 디버깅을 , 유용한 정보들이 보여지는 화면이다.
지금까지 15 정도 사용해 결과로는 자바 perspective 가장 사용빈도가 높았으며, 앞으로 대부분의 설명 화면은 자바 perspective에서 이루어질 것이다.
3.새로운 프로젝트 만들기
이클립스에서는 어떤 작업을 하든지 프로젝트 먼저 만들어져야 한다. 프로젝트를 만들기 위해서는 File 메뉴 -> New -> Project 선택하든가, 아래 왼쪽 그림처럼 도구모음에서 New -> Project 선택할 있다. Project 선택하면, 아래 오른쪽 그림과 같은 화면이 보이는데, 왼쪽 패널에서 [Java], 오른쪽 패널에서 [Java Project] 선택하고, [Next]버튼을 누른다.
이제 프로젝트의 이름을 지어주어야 한다.
왼쪽 그림처럼 프로젝트 이름을 입력해주면 된다. 그리고라는 체크 박스가 보이는데, 이것을 체크하면 이클립스 프로젝트 기본 경로인 <이클립스설치경로/workspace/> 프로젝트 이름에 해당하는 디렉토리가 생성된다.
물론 체크 박스를 언체크하여 이미 존재하는 다른 클래스 패키지들을 연결시킬 수도 있다. 이에 대한 내용은 다음에 다시 언급될 것이다. 지금은 그냥 기본값으로 시작하도록 한다.
[Next]버튼을 누르면 자바 빌드에 관련된 설정을 해주는 대화상자가 뜬다.
다른 것들은 별로 손댈 것이 없으나 [Libraries]탭은 내용 추가가 필요할 수도 있다.
우리는 현재 서블릿 스터디를 하고 있기 때문에 기본 자바 런타임 패키지인 rt.jar외에도 서블릿 패키지인 servlet.jar 제이슨헌터 아저씨가 작성한 cos.jar 필요하다. 추가하고 싶으면 [Add External JARs...]버튼을 선택해서 추가하면 된다. 이렇게 외부 라이브러리를 추가해주어야 이클립스에서 컴파일할 에러가 발생하지 않으며, 코딩시 서블릿 클래스에 대한 코드 어시스트(code assist) 가능해진다.
하지만, 이렇게 외부 JAR 파일을 추가하는 것은 추후에도 가능하므로 지금은 그냥 [Finish] 버튼을 눌러서 프로젝트 생성을 완료하도록 한다. (프로젝트 선택 -> File 메뉴 -> Properties -> Java Build Path 선택하면 위와 똑같은 탭들을 있다.)
4.새로운 클래스 추가하기
좀전에 생성한 프로젝트에 새로운 클래스를 추가해보도록 하겠다. 자바 perspective 왼쪽 패키지 트리( 패널을 ‘Packages 라고 한다)에서 TestProject 선택한다. 상태에서 마우스 오른쪽 버튼을 클릭하여 팝업 메뉴에서 New->Class 선택한다.
이렇게 새로운 클래스를 생성한다고 선택하면 다음 그림과 같이 새로운 자바 클래스를 만들어내는데 필요한 옵션을 설정해야 한다.
현재, 별도의 패키지 구조를 만들지는 않을 것이기 때문에 [Package] 상태(디폴트 패키지) 둔다.
[Name]에는 클래스의 이름을 입력해야 한다. 다른 체크 박스는 손댈 것이 없어 보인다.
마지막에 보이는 세가지 체크 박스에 대해 설명하자면,
첫번째 것은 main 메소드를 자동으로 추가해 것인가?,
두번째 것은 생성자 코드에 상위 클래스의 생성자를 호출하는 super() 메소드를 추가할 것인가?,
세번째 것은 상위 클래스가 추상 클래스로 지정되어 있을 , 추상 메소드를 상속받아서 메소드로 보여줄 것인가를 결정한다.
[Finish]버튼을 누르면 새로운 클래스가 생성될 것이다.
다음 그림과 같이 HelloWorld.java 생성되어야 하며, main 메소드도 자동으로 추가되어 있는 것을 있을 것이다.
5. 소스 입력하기
이제 자바 소스를 컴파일하고 실행시켜볼 예정이기 때문에, 다음과 같은 간단한 소스 파일을 입력해 보도록 하자. 소스는 역시나 헬로우.
이클립스에는 재미있게도, 컴파일 과정이 별도의 메뉴로 제공되지 않는다. 단지 소스 입력을 마치고 저장(Ctrl+s) 하면 자동으로 컴파일이 이루어진다. 그리고 코딩 중에 실시간으로 문법 검사를 해주기 때문에 오타에 의한 에러가 확실히 줄어든다. 만약 코딩을 했는데, 줄의 부분에 전구 마크나 빨간 X 마크가 보이면, 뭔가 잘못되었음을 의미한다.
예를 들어, sayHello() 메소드에 리턴형인 void 빼먹었다고 하자. 그러면 이클립스는 즉각적으로 다음과 같이 sayHello 메소드 앞에 전구 마크를 보여준다. 도대체 무슨 문제인가 궁금하면 전구 마크를 살짝 클릭해 보자. 다음 그림과 같은 화면이 보일 것이다.
외에도 클래스명 오타나 public, static 등과 관련된 문법 사항, import 빠진 경우 거의 완벽한 수준의 실시간 검사를 제공하고 있다. 참고로, 가끔씩 노란 전구 마크가 들어와서 분명히 수정했는데도 불구하고 노란 전구 마크가 빨간 X 마크로 변해, 순간 당혹스럽게 만들기도 한다. 때는 살짝 Ctrl+s 눌러서 저장을 한번 해주면 컴파일을 하면서 아무 문제 없음을 이클립스에서 알게 것이다.
6. 실행하기
앞에서 이미 컴파일이란 별도의 명시적인 단계는 없음을 알았다. 코딩을 완료했고, 화면에 아무런 에러가 보이지 않는다면 이제 위의 클래스를 실행시켜볼 있다.
메뉴에서 [Run]->[Run...] 선택하거나, 도구모음의 [달리기하고 있는 사람]버튼에서 아래 화살표를 클릭한 , [Run...] 선택해보자.
다음과 같은 화면이 것이다.
위의 그림에서 [Java Application] 선택하고, 아래 있는 [New]버튼을 클릭하거나,
또는 [Java Application] 더블 클릭하면, 다음과 같은 화면이 보일 것이다.
현재 작업 중이던 프로젝트가 TestProject이고 메인 클래스가 HelloWorld였다는 사실을 이클립스에서 알고 있기 때문에 스스로 적당한 값들을 채워넣었다. 오른쪽에 여러 탭이 보이는데, 지금은 건드리지 않고 그냥 [Run] 버튼을 눌러보자.
화면 하단이나 어딘가에 [Console ] 보일 것이고, 결과는 위와 같이 “Hello? Kim” 것이다.
7. 디버깅하기
일반적으로 디버깅은 어느 순간 어떤 메소드에 전달된 파라미터의 값이 무엇인지 알고 싶을 , 제어문이 도대체 어떤 순서로 수행되는지 알고 싶을때, 혹은 어떠한 논리적인 오류는 없는지 확인하기 위해 사용한다.
디버깅을 하기 위해서는 컴파일 에러가 발생한 지점 근처나 에러의 근원지라고 의심이 되는 부분에 미리 표시를 해두어야 한다. 디버깅 실행을 하면 이클립스는 이런 표시가 있는 부분에서 잠시 정지하여 프로그래머가 각종 변수의 현재 상태를 파악할 있도록 해준다.
위에서 작성했던 예제로 디버깅을 해보도록 하겠다.
디버깅 과정을 통해 우리는 sayHello에서 인사말 출력을 위해 사용하는 m_to라는 변수에 “Kim”이란 올바른 값이 저장되어 있는지 확인하고자 한다.
먼저 26라인에서 줄번호가 보이는 공간에서 오른쪽 마우스 버튼을 클릭하면 다음과 같은 팝업 메뉴가 보일 것이다. 여기서 [Add Breakpoint] 선택하도록 한다. 선택하고 나면 하늘색 마크가 보일 것이다.
도구모음에서 선택하면 자바 perspective에서 자동으로 디버그 perspective 변경되고, 좀전에 표시한 지점까지 실행이 되며 breakpoint 지점에서 대기하고 있음을 있을 것이다. 다음 그림에서 보는 바와 같이 우측 상단의 [variables ] 통해 현재 m_to 변수가 String 타입이며 값은 “Kim”이란 사실을 있다.
이상의 자세한 디버깅 요령에 대해서 아직은 나도 모르기 때문에 여기까지만 설명하고 차후에 자세한 내용을 익히게 되면 다시 설명할 기회가 있겠지? ^^
8. 프로젝트에 기존의 클래스를 추가하기
항상 클래스를 새로 만드는 것은 아니며 기존의 클래스 파일을 그대로 가져다가 쓰거나, 혹은 어떤 클래스 파일을 테스트해 보기 위해 프로젝트에 포함시킬 수도 있다. 예제에서는 퍼포먼스 튜닝 예제 파일 일부를 TestProject 추가해 보도록 하겠다. 예제 파일은 “F:\STUDY\eclipse_test” 저장되어 있다고 가정하며, 디렉토리 구조는 다음과 같다.
참고로 클래스(PrintWrapper, Dict) 각각 tuning.console, tuning.dict 패키지화 되어있다.
클래스를 TestProject 추가하도록 하겠다. 먼저 [package ]에서 TestProject 선택하고 오른쪽 마우스 버튼을 클릭하여 [Import] 메뉴를 선택한다. 그러면 아래의 왼쪽 그림과 같은 대화상자가 뜨는데, 여기서 [File System] 선택하면, 오른쪽과 같은 대화상자가 뜬다.
상태에서 [Directory] [Browse...]버튼을 눌러서 “F:\STUDY\eclipse_test” 선택한 , 모든 클래스 파일을 체크하도록 한다. 다음 그림을 참고한다.
위의 클래스 파일이 포함된 결과 화면은 다음과 같다.
그런데, 위와 같이 임포트를 결과를 살펴보면 “F:\STUDY\eclipse_test” 있던 클래스 파일들이 “<이클립스설치홈>/workspace/TestProject” 아래에 그대로 복사된 것을 있을 것이다. 이런 식으로 복사해오는 것이 기본 설정이기 때문에 이렇게 작동을 하는 것인데, 만약에 규모가 패키지를 임포트하는 경우라면 공간의 낭비가 아닐 없을 것이다.
이런 문제를 해결하기 위해 실제로 클래스 파일을 이클립스 워크스페이스 복사하지 않고, 원본은 원래 위치에 그대로 두고 단지 경로 정보만 참조해서 프로젝트를 만들 수도 있다. tuning.XXX 패키지를 임포트하기 위해 TuningTest라는 프로젝트를 새로 만들어보자. 처음에 프로젝트를 생성했던 방법대로 하면 되지만, 한가지 다른 점은 다음처럼 프로젝트 경로명에서 [Use Default] 언체크하고 임포트하려는 실제 경로를 선택해야 한다.
위와 같이 제대로 선택을 , 이상 [Next] 필요없이 [Finish]버튼만 누르면 프로젝트 생성이 완료된다.
TuningTest 프로젝트에서 오른쪽 마우스 버튼을 눌러 [Properties] 선택하면 다음과 같은 정보창이 보일 것이다.
[Location] 정보를 보면 이클립스 워크스페이스가 아닌 원래 tuning 패키지의 위치를 참조하고 있음을 있을 것이다.
NOTE!!
지금까지로는 프로젝트에 여러 경로의 클래스 파일을 참조할 수는 없는 것으로 보인다. , 어떤 클래스는 이클립스 워크스페이스에 있는 것을 참조하고, 다른 클래스는 외부 경로만 참조해서 프로젝트에 추가하는 것은 안되는 것이다. 만약 나중에 되는 방법을 알게 되면 수정토록 하겠다. 그런데, 굳이 이렇게 안되도 별로 상관은 없을 같기는 하지만 ^^;;
9. ANT 사용하기
이제부터는 ANT 사용하는 방법을 알아본다. 우선 ANT 실행시키려면 build.xml 파일이 있어야 한다. 나같은 경우 ServletStudy라는 프로젝트를 생성한 , 챕터별로 SourceFolder 생성하고 소스 폴더별로 소스 파일을 관리했다. 모양새는 다음과 같다. 소스 폴더별로 build.xml web.xml 파일이 존재한다.
왼쪽 그림에서 보는 바와 같이, build.xml 파일에서 마우스 오른쪽 버튼을 클릭하면, [Run Ant...]라는 메뉴를 있다. 단순히 메뉴를 선택하면 다음 그림과 같은 대화상자가 보인다.
여기서 build.xml 여러 타겟(target) 엘리먼트들 중에서 특정 타겟을 선정해야 하고 [Finish]버튼을 누르면 ANT 실행이 이루어진다.
그러나 두가지 정도 주의할 점이 있다.
하나는 ANT 실행시키면 다음과 같은 에러 메시지가 있다.
에러 메시지를 살펴보면, 컴파일러를 찾을 없으니 JAVA_HOME 환경변수 설정을 제대로 했는지 확인하라고 한다. 그러나 실상 문제를 해결하려면 다른 방법으로 해야한다. 백날 시스템의 JAVA_HOME 수정해밨자 아무 상관이 없다.
우선 메인 메뉴인 Windows -> Preferences -> External Tools -> Ant 선택하면 다음과 같은 대화상자가 보일 것이다.
위의 문제를 해결하려면 [Classpath]탭에 J2SDK tools.jar 파일이 포함되어 있어야 한다. 네모 안에 있는 항목을 [Add Jar...]버튼을 눌러서 추가하도록 한다.
그리고 나서 다시 [Run Ant...]메뉴를 실행시켜 보자. 수도 있고, 아닐 수도 있는데, 아마도 제대로 안된 경우라면 컴파일 에러가 발생할 것이다. 아마도 servlet COS 관련된 클래스들을 찾을 없다는 메시지들일 것이다.
아직 정확한 이유는 모르겠지만 ANT 이용해서 컴파일을 경우, 시스템 전역에 걸려있는 클래스패스는 의미가 없는 것으로 보인다. build.xml 파일 내에 컴파일 시에 정확한 클래스패스가 모두 명시되어 있어야 한다. 다음과 같이.
<property name="cp" value=".;D:/jakarta-tomcat-4.0.4/common/lib/servlet.jar;D:/jakarta-tomcat-4.0.4/common/lib/cos.jar"/>
<target name="compile" depends="init">
<mkdir dir="${build}"/>
<javac srcdir="${src}" destdir="${build}" classpath="${cp}"/>
</target>
10. JavaDoc 생성하기
자바 헬프 문서를 생성하는 것은 더욱 간단하다. 디렉토리나 프로젝트 혹은 클래스 파일에서 오른쪽 마우스 버튼을 클릭하여 [Export] 메뉴를 선택한다.
왼쪽 그림과 같은 대화상자가 보이면, [javadoc] 선택하고 [Next>]버튼을 클릭한다.
왼쪽 그림처럼 자바 헬프 문서로 만들고 싶은 자바 소스 파일을 선택하고, 자바 문서를 생성할 디렉토리 경로도 지정한다.
그냥 [Finish] 눌러줘도 충분하다.
다른 옵션들을 보고 싶으면 계속 [Next]버튼을 눌러서 확인해 보도록.
이로써 자바 문서 생성도 완료되었다. ^^...
이렇게 자바 헬프 문서로 export하는 외에, JAR 파일로 export 수도 있다. 방법은 간단하므로 설명을 생략한다.
한가지 언급하고자 하는 기능 중에 삭제 파일 되돌리기 기능이 있다. 이클립스 상에서 실수로 파일을 지운 경우 윈도우즈 휴지통에는 흔적이 남지 않기 때문에 정상적인 방법으로는 복구가 불가능하다. 게다가 이클립스는 파일을 지울 , 별달리 경고도 없이 보통은 그냥 지우는 경향이 강하다. 하지만 이런 위험천만한 스타일이 가능한 이유가 있었다. 처음에는 몰라서 잘못 지운 파일을 다시 코딩하는 우를 범했는데, 알고 보니 이클립스 자체적으로 이러한 파일들에 대한 히스토리를 관리하고 있었다. , 자체적으로 휴지통 기능 혹은 되돌리기 기능이 있는 셈이었다.
[package ]에서 디렉토리나 패키지, 혹은 파일을 선택한 후에, 오른쪽 버튼 클릭으로 팝업 메뉴를 띄워보면 [Restore from Local History]라는 메뉴가 있다. 기능을 선택하면 처음부터 지금까지 지워졌던 기억이 있는 모든 기록들이 시간별로 쫘악 정리되어 있는 것을 있다. 중에서 어느 것이 내가 원하는 시점의 파일인지 파악한 , 복구하고자 하는 적당한 파일들을 체크하고 [Restore] 버튼을 클릭하면 된다. 기능이 없다면 정말 피말리는 사건들이 자주 생길 것이다. ^^ 다음의 화면은 참조하기 바란다.
11.기타 유용한 기능들
1. Organize Import / Add Imports
보통 import java.io.*; 이런식으로 임포트를 하게 되는데, 코딩을 끝낸 후에 Organize import 기능을 사용하면 소스 상에서 실제로 사용한 클래스들만을 임포하도록 import 문장을 수정해 준다. 예를 들어,

2. Code Formatter
코딩 스타일을 상세하게 지정할 있어서 자신의 코딩 스타일을 그대로 사용할 있고, 소스 Formatter 기능이 있어 뒤죽박죽되어 있는 소스를 자신이 익숙한 스타일로 한꺼번에 변경할 있다.
3. Refactor
클래스 이름을 수정하거나 패키지가 변경되면, 클래스를 참조하고 있던 다른 모든 클래스까지도 자동으로 수정을 해서 소스 관리가 자동으로 이루어진다.
4. 코딩 실시간 문법 검사 해결책 제시
코딩 중에 실시간 문법 검사를 하며, 문제가 발생하면 가능한 해결책을 여러 가지 제시한다. 여러 가지 해결책을 직접 입력할 필요도 없으며 단지 해결책이 나열된 팝업 메뉴 중에서 가지를 선택하면 스스로 수정해준다.
5. 코드 어시스트
다른 툴에도 존재하는 기능이며, MS 비쥬얼 스튜디오보다는 약간 사용하기 불편하지만 그래도 필요한 기능이며, 코딩 속도를 높여주고, API 문법을 빠삭하게 외우지 않아도 코딩이 가능하도록 해준다. 기본적으로 .() 누르고 500 밀리초 후에 어시스트 팝업이 뜨도록 되어있는데, 이는 너무 느린것 같고 개인적으로는 100 밀리초로 설정하여 사용하고 있다.
출처: - IBM 의 이클립스 사용법 - 자바카페 김정환님(http://www.javacafe.or.kr)
Posted by 1010
반응형

이클립스 -> 윈도우 -> 환경설정 -> 자바 -> Code Style -> Code Templates 에 가보면

주석을 템플릿화해서 사용할수 있습니다.

제가 사용하는 설정파일을 올리니 사용하실분들은 가져다가 import 해서 사용하시기 바랍니다.


사용법은 메소드 혹은 생성자 윗부분에 /** 후 엔터를 치시면 정해진 주석이 짠~ 하고 나타나게 됩니다.
Posted by 1010
56. Eclipse Etc.../Eclipse2009. 2. 25. 00:54
반응형
Eclipse 시작

Eclipse 시작하기 : JDK 설치에서부터 Eclipse 다운로드등 Eclipse를 처음 시작하는 개발자들이 알아야하는 내용에 대하여 다루고 있다.

Eclipse에 새로운 플러그인 설치하기 : Eclipse에 새로운 플러그인을 추가하는 방법에 대하여 두가지로 나누어 살펴본다. 또한 새로운 플러그인을 찾을 수 있는 방법에 대해서도 다룬다.

Eclipse 사용시 알아두면 좋은 유용한 단축키 모음

Eclipse 강좌

Eclipse 사용을 위한 동영상 강좌 : Eclipse 3.1이 배포되면서 좋은 동영상 강좌들이 많이 올라와 있다. Eclipse의 많은 기능들을 느끼고 사용해 볼 수 있다.

Eclipse 에서 Middlegen 사용하기 : 프로잭트를 하다보면 Database의 변경이 있을 수 있다. 만일 이러한 상황에서 Hiberanate같은 framework를 사용할 시에 변경될 때마다 해당 xml mapping파일과 java dto 객체를 생성하는 일은 참으로 번거로운 일이 아닐 수 없으며 이러한 비용을 줄이기 위해 eclipse용 plugin으로 middlegen이 나왔습니다.

Eclipse 사용시 유용한 팁

Eclipse 사용시 알아두면 유용한 팁
Eclipse 성능 높히기
Eclipse 기반하에서 Remote Debugging 설정 : Eclipse 기반하에서 Remote Debugging을 실행하는 방법에 대하여 다룬다.

Eclipse With PlugIn

Eclipse에 Web Tools Project 설치 및 사용방법 : 지금까지 Eclipse에서 불편하게 느꼈던 웹 개발의 편의성을 향상 시켜줄 막강한 플러그인에 관한 설치에서부터 다양한 툴들을 사용방법에 대하여 다룬다.

Eclipse에 Tomcat Server플러그인 설치하기
Eclipse에 JRUN Server플러그인 설치하기
Eclipse에 JBoss Server플러그인 설치하기
Eclipse에 Lomboz플러그인 설치하기 1
Eclipse에 Lomboz플러그인 설치하기 2
Eclipse에 JsUnit 플러그인을 설치하여 자바 스크립트 테스트하기
Eclipse에 Eclipse Profiler 설치 및 세팅하기

Eclipse With 버전 관리 시스템

CVS 설치와 Eclipse와의 연동
Eclipse와 CVS과 연결하여 사용하기
Subversion 설치 및 Eclipse와의 연동
Visual Source Safe 설치와 Eclipse와의 연동

 
Posted by 1010
56. Eclipse Etc.../Eclipse2009. 2. 18. 13:07
반응형

1. 코딩표준 : CheckStyle

2. 코드중복발견 : PMD의 CPD

3. 코드 커버리지 측정 : Coverlipse

4. 의존성 분석 제공 : JDepend

5. 복잡성 탐지 : Metrics


=======================================================================================================

1. 코딩표준분석 : CheckStyle

CheckStyle 싸이트 : http://eclipse-cs.sourceforge.net/

eclipse update 주소 : http://eclipse-cs.sourceforge.net/update



=======================================================================================================

2. Copy/Paste 탐지 : CPD

eclipse update 주소 : http://pmd.sourceforge.net/eclipse




=======================================================================================================

3. 코드 커버리지 테스트 : Coverlipse

Coverlipse 싸이트 : http://coverlipse.sourceforge.net

eclipse update 주소 : http://coverlipse.sf.net/update

 

 

 

=======================================================================================================

4. 패키지 의존성 분석 : JDepend

JDepent 싸이트 : http://andrei.gmxhome.de/ 여기서 eclipse plugin으로 들어가 JDepend를 찾으면 된다.

eclipse update 주소 : http://andrei.gmxhome.de/eclipse/




=======================================================================================================

5. 복잡성 탐지 : Metrics

Metrics 싸이트 : http://metrics.sourceforge.net/

eclipse update 주소 : http://metrics.sourceforge.net/update


Posted by 1010
56. Eclipse Etc.../Eclipse2009. 2. 11. 16:41
반응형

이클립스 설치후 깔아야할 플러그인들 ..

( 현재 Eclipse 3.2.x 기준 )

1. 기본적으로 WTP 플러그인을 설치한다.
    (Update 실행하면 됨 ㅋㅋ)

2. AnyEdit 말이 필요 없다. 필수!
- Ctrl + Shift + R 누르면 해당 링크로 바로 이동 ㅡ_ㅡ; 소스레벨의 F3키와는 다른 편리함 이밖에도 다른 기능들이 조낸 많음
- 사이트 :  http://andrei.gmxhome.de/anyedit/index.html
- 업데이트 : http://andrei.gmxhome.de/eclipse/

3. properEdit
- 각종 property 파일 수정할때 native2ascii 할 필요가 없게 해주는 유용함. ㅋ 일본어, 한글, utf-8 다 지원한다.

4. Extended VS Presentation
- 이클립스 스타일을 변경해줌과 동시에 인터페이스가 바뀐다 ㅡㅡ; 지금 랭킹 1위야 ㅡㅡ; 그밖에 여러가지
- 사이트: http://andrei.gmxhome.de/skins/index.html
- 업데이트 : http://andrei.gmxhome.de/eclipse/

5. QuickREx - regular expressions
- 웹개발을 하다보면 말이지 레귤러 익스프레션을 사용할 일이 생긴다고 ㅡㅡ; 요거 그거야 ㅋ
- 사이트 : http://www.bastian-bergerhoff.com/eclipse/features/web/QuickREx/toc.html 
- 업데이트 : http://www.bastian-bergerhoff.com/eclipse/features

6. Log4E
-  말안해도 알겠쥐?
- 사이트 : http://log4e.jayefem.de
- 업데이트 : http://log4e.jayefem.de/update

7. Oxygen XML Editor and XSLT Editor/Debugger
- XML 써바야지 ㅡㅡ;
- 사이트 : http://www.oxygenxml.com
- 업데이트 : http://www.oxygenxml.com/InstData/Eclipse

8. JadClipse
-  이건 역컴파일러라는거지 ㅎㅎ 넘 괜찮은넘 ㅡㅡ;
- 사이트 : http://jadclipse.sourceforge.net
- 업데이트 :

9. PMD For Eclipse
-
- 사이트 : http://pmd.sourceforge.net
- 업데이트 : http://pmd.sourceforge.net/eclipse/

10. Code Analysis Plugin - CAP
-  요건 페키지, 파일 들이 어떤 구조로 되어 있는지 한눈에 알 수 있게 해준다. 스크린샷 참고
- 사이트 : http://cap.xore.de
- 업데이트 : http://cap.xore.de/update/

11. Checkstyle Plug-in
- 알려진 소스에 대한 스타일 체크
- 사이트 : http://eclipse-cs.sourceforge.net/
- 업데이트 : http://eclipse-cs.sourceforge.net/update

12. QuantumDB Eclipse Plugin
- SQL
- 사이트 : http://quantum.sourceforge.net/
- 업데이트 :
파일다운로드




13. Maven Integration for Eclipse
- 마빈 플러그인 이클립스에서 마빈을 사용하여 빌드를 할 수 있게 해준다 .. ㅋㅋ 필수조 ㅎㅎ
- 사이트 : http://m2eclipse.codehaus.org/
- 업데이트 : http://m2eclipse.codehaus.org/update/

14. Lib Copy
- 마빈 플러그인 이클립스에서 마빈을 사용하여 빌드를 할 경우 WTP와 통합이 되도록 해준다 ㅋㅋ 자세한 사항은 아래 사이트 참조 ( 이건 WTP를 사용 하지 않을꺼라면(대신 sysdo tomcat plugin 사용) 안해도 된다)
- 사이트 : http://adam.kruszewski.name/projects/libcopy
- 업데이트 : http://adam.kruszewski.name/eclipse

15. Sysdeo Eclipse Tomcat Launcher plugin
-  톰켓 플러그인
- 사이트 : http://www.sysdeo.com/eclipse/tomcatplugin
- 업데이트 :  톰켓 6.0 까지 지원 아직 배타이지만 정식 나오겠지 (압축풀어 설치)
파일 다운 로드





16. SubVersion 버전 관리 툴
- 버전 관리 막강한 client 툴 이거 없으면 못해 CVS도 있지만 서브 버전의 막강한 기능을 구현
- 사이트 : http://www.polarion.org/p_subversive_features.php
- 업데이트 : http://www.polarion.org/download/p_subversive/update-site/


■ 이클립스 플러그인 관련 사이트

http://www.eclipse-plugins.info 간단한 플러그인 정보와 인기도(?) 확인 가능
http://www.sourceforge.net 각종 이클립스 플러그인 프로젝트들이 등록되어있음
http://www.eclipseplugincentral.com 플러그인 쇼핑몰, 포럼


■ DB 플러그인

1) Quantum DB (http://sourceforge.net/projects/quantum/)

왼쪽 북마크에 접속하고자 하는 DB 추가하고 환경잡기(ID, 비번, 접속드라이버 등)
원하는 북마크를 오른쪽버튼 클릭해서 DB에 connect한 후 오른쪽 쿼리 에디터에서 쿼리.

[참고]
- 오라클 JDBC드라이버 : C:oracleora81jdbclibclases12.zip 찾아서 추가 (oracle.jdbc.driver.OracleDriver)
- connection URL : jdbc:oracle:thin:@000.00.00.000:1521:ORACLE8

2) dbedit (http://sourceforge.net/projects/dbedit/)

3) jfacedbc #상용# (http://sourceforge.net/projects/jfacedbc/)

소스포지에 있는 버전은 2.X 버전이고 3.0부터는 상용으로 http://www.jfacedbc.com/ 에서 다운/구매 가능 (기능은 확실히 좋을 듯...)



■ XML 플러그인

1) XMLBuddy http://www.xmlbuddy.com/
XMLBuddy pro는 #상용#입니다.

2) oxygen #상용#
url update : http://www.oxygenxml.com/InstData/Eclipse/site.xml

3) MyEclipse Enterprise Workbench #상용# (http://www.myeclipseide.com)
MyEclipse 설치하면 깔리는 XML 에디터.

4) 그 외 JXMLEditor, MetaCoder , Sunbow , X-Men, XML Schema Quality Checker



■ J2EE 개발 플랫폼

1) Lomboz (http://forge.objectweb.org/projects/lomboz)
롬보즈를 쓰기 위해서는 EMF(http://www.eclipse.org/emf)도 깔려있어야 함

2) MyEclipse Enterprise Workbench #상용# (http://www.myeclipseide.com)



■ JSP 에디터 플러그인

1) SolarEclipse (http://sourceforge.net/projects/solareclipse/)
jsp 하이라이팅 기능만 있음

2) Lomboz jsp editor (http://forge.objectweb.org/projects/lomboz)
롬보즈 설치하면 깔리는 jsp 에디터. 코드 어시스턴스 기능 있음.

3) MyEclipse Enterprise Workbench #상용# (http://www.myeclipseide.com)
MyEclipse 설치하면 깔리는 jsp 에디터. 롬보즈가 저장 시 에러 체크를 하는 반면, 실시간으로 에러 체크를 한다고 함.



■ 각종 플러그인

1) Yoxos ( http://www.yoxos.com/ )

유용한 플러그인들을 묶어 프로그램 인스톨하는 형식으로 배포.
종류별로 잘 분류되어 있고 설치시 필요한 플러그인만 선택하여 설치 가능.

2) subversion (svn) 플러그인
url update : http://subclipse.tigris.org/update

3) SWT/Swing 디자이너 #상용# http://www.swt-designer.com/




■ 플러그인 설치

1) 설치유형 1 : 복사
받은 플러그인 파일을 C:eclipseplugins 에 복사하고 재시작

2) 설치유형 2 : url update
Help > Software Updates > Find and Install 메뉴 선택
"search for new features to install" 선택후 next 버튼
new remote site 버튼을 클릭하여 플러그인명과 url update 주소를 입력하면 다운 받을 수 있다.

3) 플러그인 설치 문제 해결

복사해서 플러그인을 설치 할 때 가끔 반영이 안되는 문제가 있다.
똑같이 설치를 해도 잘 되는 컴이 있는가 하면 그렇지 않은 것도 있으니... -_-a
처음 실행 이전에 플러그인을 모두 복사해야 정상작동할 듯 싶다. 일단 실행 이후에 플러그인을 추가 설치하면 간혹 말썽이다.

첫째, Help > Software Updates > Manage Configuration 에서 설치되지않은 것들이 있으면 enable 시켜준다.
이렇게 해서 해결 된다면 제일 편하게 해결된 것.

둘째, eclipse 폴더 아래 configuration 폴더를 지우고 재시작.

셋째, 이래도 안 깔리면.... 이클립스를 아예 새로 풀고 플러그인들 먼저 다 복사해 둔 후 최초실행 시킨다.


출처 : http://www.cyworld.com/kangs007

Posted by 1010
56. Eclipse Etc.../Eclipse2009. 1. 29. 13:36
반응형


Workspace in use or cannot be created, choose a different one. 이라는 메시지가 나타나면서, 이클립스에서는 다른 workspace를 선택하라는 화면이 나온다.

이 경우에는 평소에 사용하는 workspace를 변경해야만 이클립스가 기동되는데, 대부분의 개발자분들이 그런 짓(?)을 하기는 싫을 것이다.


가장 쉬운 해결책
윈도우 작업 관리자를 열어서 eclipse.exe 프로세스를 죽인다.


두번째 해결책
자기가 정해놓은 workspace 디렉토리로 이동해서, .metadata 라는 디렉토리에 있는 .lock 파일을 지운다.


둘중 한 방법을 사용하면 정상적으로 이클립스가 기동된다.

Posted by 1010
56. Eclipse Etc.../Eclipse2009. 1. 19. 11:03
반응형
지난 글을 통해 Eclipse 3.4 + WTP + Tomcat 5.5 를 이용한 간단한 개발 환경을 꾸려보았다. 이제 그 환경에 DWR이 가능하도록 수정해보자.

  일단 Eclipse 3.4 와 Tomcat에 대한 연동은 지난 글을 참조하기 바라며 바로 설치에 들어가보도록 하자.

1. 먼저 dwr.jar 를 다운 받아야 한다. 이 글을 쓰는 시점의 Stable Release 2.0.5 이다.(http://directwebremoting.org/dwr/download)

2. 2.0.5 버전에서는 추가적으로 Apache Common-Loggings 가 필요하다. 다운로드 받도록 하자.(http://commons.apache.org/downloads/download_logging.cgi)

3. 다운로드 받은 dwr.jar 와 다운로드 받은 common-loggings-version.jar(다운로드 받은 Zip 파일의 압축을 풀면 있다.)를 복사하여 해당 프로젝트(프로젝트명을 TestProject라 하자)의 /TestProject/WebContent/WEB-INF/lib 에 복사하도록 한다. 그리고 프로젝트 Root에서 F5 키를 누르면 프로젝트가 Refresh 되면서 해당 jar 파일들을 build path에 포함시키게 되며, 원래 없던 Web App Libraries 라는 디렉토리가 생성된다.


  4. 이제 /TestProject/WebContent/WEB-INF/web.xml 을 아래 내용을 추가한다.

	<servlet>
	  <servlet-name>dwr-invoker</servlet-name>
	  <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
	  <init-param>
	     <param-name>debug</param-name>
	     <param-value>true</param-value>
	  </init-param>
	</servlet>
	<servlet-mapping>
	  <servlet-name>dwr-invoker</servlet-name>
	  <url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>

  5. /TestProject/WebContent/WEB-INF/ 에 dwr.xml 이란 파일을 추가시키고 아래 내용을 입력한다.

<!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
    "http://getahead.org/dwr/dwr20.dtd">
<dwr>
  <allow>
    <create creator="new" javascript="Hello">
      <param name="class" value="dwrtest.HelloName"/>
    </create>
  </allow>
</dwr>

  6. /TestProject/src 에서 오른쪽 클릭하고, New > Class 를 선택하여 새로운 클래스를 추가한다.
       - Package 에 dwrtest 라고 적어준다.
       - Name 에 HelloName 이라고 적어준다.
     그리고 Finish 버튼을 누른다.


  7. 그럼 perspective 가 아래 그림과 같이 될 것이다.


  8. HelloName.java 를 아래와 같이 작성한다.

package dwrtest;

public class HelloName {
	public String getHelloName(String name){
		if(name == null || name.trim().length() < 1){
			return "Hello~! John Doe.";
		}

		return "Hello~! " + name + ".";
	}

}

  9. /TestProject/WebContent/index.jsp 를 아래와 같이 수정한다.

<html>
<head>
<title>DWR Test</title>
<script type="text/javascript" src='http://localhost:8081/dwr/interface/Hello.js'></script>
<script type="text/javascript" src='http://localhost:8081/dwr/engine.js'></script>
<script type="text/javascript">
	function update() {
	  var name = document.getElementById("myname").value;
	  Hello.getHelloName(name, loadinfo);
	}

	function loadinfo(data) {
		document.getElementById("replytext").innerText = data;
	}
</script>
</head>
<body>
<p>
  Name:
  <input type="text" id="myname"/>
  <input value="Send" type="button" onclick="update()"/>
  <br/>
  Reply: <span id="replytext"></span>
</p>
</body>
</html>

  10. 이제 모든 준비가 끝났다. 서버를 Start(혹은 Restart) 시킨다. 웹브라우져를 띄우고, 주소창에 자신의 환경에 맞게 적절히 입력한다. 그럼 아래와 같은 모습이 나타날 것이다.


  11. Name 에 적당한 값을 입력하고 Send 버튼을 눌러보자. 그럼 아까 작성해둔 HelloName 클래스의 getHelloName() 메소드가 호출되어 넘어온 값이 Reply 부분에 표시될 것이다.


  어떻게 이러한 작동이 이루어지는지 살펴보도록 하자.

  먼저 web.xml 에 추가된 내용을 살펴보도록 하자.

	<servlet>
	  <servlet-name>dwr-invoker</servlet-name>
	  <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
	  <init-param>
	     <param-name>debug</param-name>
	     <param-value>true</param-value>
	  </init-param>
	</servlet>
	<servlet-mapping>
	  <servlet-name>dwr-invoker</servlet-name>
	  <url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>

  이는 uri 가 "/dwr/" 로 들어오는 것에 대한 모든 처리는 org.directwebremoting.servlet.DwrServlet 에서 하겠다는 의미이다. 이는 일반적인 Servlet이나 JSP 개발환경에서 이용 가능한 설정이다. DWR 은 일반적인 환경 이외에도 Struts 나 Spring 등 여러가지 Framwork 와도 연동이 가능하며 이때 사용되는 <servlet-class>의 값은 조금 다르다. 가령 Spring의 경우 <servlet-class> 값으로 org.directwebremoting.spring.DwrSpringServlet 가 들어간다. 이런 외부 Framework 와의 연동은 다음시간에 알아보도록 하겠다.

  다음으로 dwr.xml 에 대해 알아보도록 하자.

<!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
    "http://getahead.org/dwr/dwr20.dtd">
<dwr>
  <allow>
    <create creator="new" javascript="Hello">
      <param name="class" value="dwrtest.HelloName"/>
    </create>
  </allow>
</dwr>

  dwr tag 는 가장 상위 tag 로 ROOT 역할을 한다. allow tag 는 DWR 클래스 를 생성(create)하고, 매핑(convert)하며 전역 필터(grobal filter)를 사용 가능하게 한다. - 여기서는 create 에 대해서만 설명하며, 다른부분에 대해서는 다음기회에 설명하도록 한다.

  create tag 는 실행을 하고자하는 클래스를 정의할때 사용한다. create tag 는 아래와 같은 형식으로 사용된다.

<create creator="..." javascript="..." scope="...">
     <param name="..." value="..."/>
     <auth method="..." role="..."/>
     <exclude method="..."/>
     <include method="..."/>
</create>

  위 형식중 대부분은 선택사항으로 꼭 필요한 부분은 creator 와 javascript 속성이다.
 
  예제에서 creator 속성에 설정된 "new" 라는 값은 클래스의 생성자를 사용하기 위한 값이다. 이 creator 속성은 default 생성자를 사용하여 클래스의 인스턴스를 생성한다. 이를 사용하면 매번 해당 클래스가 호출 될 때마다 인스턴스를 생성한다. - creator 에는 여러가지 설정 값이 존재하지만 이는 다음번에 dwr.xml 대한 상세 설명을 할때 하기로 하고, 여기서는 테스트로 사용한 new 에 대해서만 알아보자.

  javascript 속성은 생성된 인스턴스를 브라우져상에서 사용하기 위해 설정하는 id 값이라 보면 된다. 단, JavaScript 에 예약어로 등록되어 있는 단어들은 피하도록 해야 한다. 이 예제에서는 javascript 속성값으로 Hello 를 지정하였고, 앞서 소스에서 보았듯 index.jsp 에서 Hello 를 사용한다.

  param tag 는 위에서 creator 속성에 new 를 사용하므로서 생성하게될 클래스를 지정하게 된다. 즉, 원격 호출을 통해 사용하게될 클래스를 지정한다. 예제에서는 dwrtest.HelloName 이라는 클래스를 사용한다고 표기했다.

  include 와 exclude 는 해당 클래스의 메소드에 대한 접근성에 대한 설정으로, 이 예제에서 보듯 include와 exclude 를 지정하지 않으면 해당 클래스에 public으로 선언된 모든 메소드에 대한 접근이 가능하다. 하지만 include 를  사용하면 include 로 사용하겠다고 표시한 메소드만 접근가능하고, 나머지는 접근 할 수 없으며, 반다로 exclude 를 사용하면 exclude 로 표시한 메소드만 제외한 나머지 public 메소드에 대한 접근이 가능하다. auth 속성은 J2EE에서 role 을 통한 접근 제한시 사용된다.

  결론적으로 dwr.xml 에서의 정의를 통해 dwrtest.HelloName 란 클래스를 Hello 란 인스턴스명으로 접근하여 사용하겠다는 정의이다.

  dwrtest.HelloName 클래스에 대한 별도 설명은 안하도록 하겠다 소스에서 보듯 getHelloName 이란 메소드에서 간단히 넘겨받은 이름 앞에 Hello 란 String 을 붙여 넘기는 간단한 메소드를 포함한 클래스이다.

  그럼 이제 index.jsp 에 대해 알아보자.

<script type="text/javascript" src='http://localhost:8081/dwr/interface/Hello.js'></script>
<script type="text/javascript" src='http://localhost:8081/dwr/engine.js'></script>

  이 부분은 앞서 설정된 DWR의 연장으로 http://localhost:8081 은 현재 웹에 대한 URL 부분이며 /dwr 은 앞서 web.xml 통해 설정한 uri-pattern 이다. 
  
  engine.js 는 DWR을 사용하기 위한 기본 js 파일로 꼭 포함시켜야 하는 부분이며, 눈여겨 봐야할 부분은 /interface/Hello.js 이다. /interface/Hello 를 통해 앞서 dwr.xml 에 지정한 Hello 가 인스턴스명인 클래스를 사용한다는 의미이다. 즉, 이 부분이 포함되어야 JavaScript 상에서 Hello 를 통해 클래스의 메소드 호출이 가능해지게 된다.

<script type="text/javascript">
	function update() {
	  var name = document.getElementById("myname").value;
	  Hello.getHelloName(name, loadinfo);
	}

	function loadinfo(data) {
		document.getElementById("replytext").innerText = data;
	}
</script>
...
<p>
  Name:
  <input type="text" id="myname"/>
  <input value="Send" type="button" onclick="update()"/>
  <br/>
  Reply: <span id="replytext"></span>
</p>
 
  위에서 보듯 HTML 의 내용은 간단하다. myname 이란 text 에 이름을 적고 Send 버튼을 클릭하면 update()란 JavaScript 함수가 호출된다.

  update() 함수를 보면 해당 함수가 호출되면 myname의 값을 가져와 Hello 클래스의 getHelloName 이라는 메소드로 값을 넘기며 getHelloName 의 두번째 인자인 loadinfo 는 getHelloName 메소드 호출을 끝내고 리턴되는 값을 넘겨받을 함수인 콜백함수(Callback Function)의 이름이다.

  loadinfo() 함수는 getHelloName 메소드의 리턴값을 data라는 인자로 넘겨받아 replaytext 라는 곳에 표시한다.

  이로서 DWR의 Eclipse 를 이용한 설정 방법과 간단한 데모를 살펴 보았으며, 그에 대한 간단한 설명을 해보았다. DWR은 생각보다 간단한 설정으로 사용가능 함을 알 수 있었다.

  다음 시간에는 web.xml 과 dwr.xml 의 설정에 대한 세부사항을 알아보도록 하겠다.
Posted by 1010