반응형

open <tag> in XML mapper - mybatipse plugin 사용하기


1. mybatipse plugin 의 사용 이유

스프링으로 controller service serviceImpl dao vo 파일에서 작업 시 컨트롤러에서 서비스로 이동할때 

F2, F3를 이용하거나 ctrl을 눌러 open declaration을 통해  컨트롤러에서 이동할 서비스 위치를 찾아 갑니다.

service에서 serviceImpl도 그렇고 DAO에서 VO도 사용을 합니다. 

serviceImpl 이나 dao에서 선택자(id)에 해당하는 mapper 쿼리를 빠르게 이동할 때 사용할 수 있습니다.

일반적으로는 plugin이 설치 되지 않아 바로 이동이 불가능 합니다. 

이럴 경우 mybatipse plugin (Eclipse plugin adding support for MyBatis SQL Mapper Framework.) 을 사용하면 많은 도움이 된다.


2. 설치 방법

Help -> Eclipse MarketPlace -> mybatipse 검색합니다.

[마켓 검색]


현재 최신 버전은 MyBatipse 1.2.2 버전입니다. 버전은 변경 될 수 있습니다.

프로그램을 Installed 하고 난후 sts나 eclipse를 재기동을 하면 설치가 됩니다. 

설치 방법은 아주 간단합니다. 


3. 사용 방법

설치를 하고 sts나 eclipse가 재기동이 되면 이동할 메소드(dao)에서 ctrl키를 눌러 보면

open <tag> in XML mapper 옵션이 추가 된것을 확인 할 수 있습니다. 



반응형
반응형

The project cannot be built until build path errors are resolved 에러 해결


이클립스 사용중에 알수 없는 오류로 골머리를 싸매는 경우가 있어 정리해 봅니다. 

SVN에서 소스를 체크아웃을 받은 상황에서 프로젝트에 에러 표시가 뜰때가 있습니다. 

톰캣을 기동해서 실행을 해봐도 아무런 문제가 발생하지 않고 정상적으로 작동하는데 프로젝트에서 에러 표시가 나오 있는 상황입니다.

이클립스 Problems 창을 확인해 보니 다음과 같은 에러 메세지가 나와 있습니다. 


"the project cannot be built until build path errors are resolved"


빌드패스에 문제가 있다고 나와 있는 문구를 보고 프로젝트 빌드 패스 창을 아무리 둘러봐도 이상한 점을 찾을 수 없을 것입니다.

이 에러는 프로젝트 라이브러리를 불러 올때 순서로 에러가 나는 경우입니다. 


해결 방법은 다음과 같습니다. 

1. 프로젝트를 선택하고 마우스 우측 버튼을 누릅니다.

2. 우측창에서 Build Path를 선택 합니다. 

3. 또는 Properties를 선택해서 Properties 창에서 Java Build Path를 선택해도 됩니다.

4. Java Build Path 창에서 Order and Export 탭을 선택 합니다. 

5. 아래 그림과 같이 창이 뜨면 프로젝트/src 부분의 순서를 최상단에서 up/down 버튼을 통해 위치를 변경해 줍니다.

6. 변경후 OK 버튼을 눌러 적용을 하면 프로젝트에 표시된 에러 표시가 사라집니다.

7. 특정 라이브러리 때문이라면 해당 라이브러리가 소스 src 보다 위에 위치 하게 될 때 까지 이동을 하면 됩니다. 

다음 그림을 통해 다시 이해 하시면 이해가 빠르실 것입니다.


이 에러는 프로젝트를 실행하는데 아무런 문제는 없습니다. 

하지만 에러 표시가 눈에 띄기 때문에 자꾸 신경이 쓰이는 에러 입니다. 

필자도 프로젝트를 실행하는데 마무런 문제가 없기 때문에 그냥 두고 있다가 에러 표시가 눈에 거슬리는 날이 오더군요

해당 프로젝트의 order and export 창에서 라이브러리 순서를 바꾸어 주니 바로 에러 표시가 사라졌습니다. 

필자는 에러표시가 사라진 이후 순서를 원래 대로 바꾸어 봤는데도 다시 에러 표시가 나타나지는 않았습니다. 

라이브러리 로딩 문제 일 수도 있고 이클립스 내에 크리티컬 하지 않은 버그가 남아 있는 듯 합니다. 

도움이 되셨기를 바랍니다. 

빨간 에러 표시가 안나오니 속이 시원하기는 합니다. 

그럼.


감사합니다. 고맙습니다. 운이 아주 좋습니다. 


반응형
반응형

log4j에서 e.printStackTrace() 메시지를 log에 남기는 방법


이클립스로 소스코드를 짜다 보면 exception 코드 확인이 필요한 경우가 많습니다. 

간단한 구문이지만 막상 쓸려고 하면 생각이 나지 않는 경우들이 많아서 몇자 남겨 놓습니다. 

log.debug("exception msg" + e.printStackTrace());    ==>  문법오류 

log.debug("exception msg" + e.printStackTrace().toString());    ==>  마지막 에러만 표시됨 


그래서 아래와 같이 try catch를 사용하면 로그로 에러를 추적할수 있습니다. 

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

try{

.....

}catch (Exception e) {

log.error ("exception msg", e);

//  or

log.debug ("exception msg", e);

...

}

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

e.printStackTrace() 구문은 요즘 PMD 에서 Avoid Print Stack Trace 로 삭제 하거나 log로 대체 되는 상황이기 때문에

미리 부터 설정 해두면 좋을것 입니다. 

PMD 에서 기본 대체 구문은 System.out.println(); 으로 잡혀 있지만 log로 남기는 것이 좋습니다. 

소스 코드 내에 println 메소드는 사용하지 않습니다. 


반응형
반응형

이클립스 오픈 리소스(open resource) 검색 제외(search exception) 설정 방법 [target, 이미지 폴더 제외] 

감사합니다. 고맙습니다. 행운을 드립니다. 

이클립스에서 오픈 리소스(open resource) Ctrl + Shift + R 단축키로 검색시 불필요한 파일까지 검색이 됩니다.

이를 막기 위해서 Filter 설정을 할 수 있습니다. 

해당 프로젝트에서 Properties 창을 open 합니다.  아래와 같이 선택을 하고 Apply를 하면 적용이 됩니다. 

이해가 잘 안되시면 아래에 순서 대로 정리하였습니다. 보시고 참고 하세요.


위 그림처럼 예를 들어 target 폴더 제외해 보는 순서를 아래에 적었습니다. 

1. 해당 프로젝트 선택 Properties (Alt + Enter)

2. Resource > Resource Filters

3. Add Filter 선택

4. Exclude all, Folder, All children 선택체크

5. File and Folder Attributes 선택

6. Filter Details

7. Name, matches 선택 후 "target" 입력 (target은 폴더 명입니다.)

8. OK 선택


위와 같이 Filter 작업을 해두면 오픈 리소스에 검색에서 제외 됩니다. 

단 이 설정은 각 프로젝트 단위로 설정 해야 합니다.

반응형
반응형

eclipse TOMCAT JNDI 설정 방법


이전글에서 스프링에서 JNDI를 설정 하는 방법을 보았습니다. 

이번에는 TOMCAT 에서 JNDI를 설정하는 방법입니다. 


톰켓(TOMCAT) 홈 디렉토리에 있는 설정 파일을 찾아 봅니다. 

TOMCAT_HOME : 톰캣이 있는 폴더 (디렉토리)를 말합니다. 

그럼 다음으로 이동을 해봅니다. 


TOMCAT_HOME/conf/server.xml 파일을 찾아 수정 작업을 합니다. 


<GlobalNamingResources> 

....[주석]

....[기존설정내용]

.....

</GlobalNamingResources> 

해당 구문을 찾습니다. 


이 구문 사이에 접근DB 정보를 입력합니다 

입력 방법은 다음과 같습니다. 


<GlobalNamingResources> 

....[주석]

....[기존설정내용]

....[추가 DB 접근 내용1]

....[추가 DB 접근 내용2]

....[추가 DB 접근 내용3]

</GlobalNamingResources> 

 

간단히 표시를 했지만 실제 구문은 다음과 같습니다. 

위 예시는 여러 DB를 사용 했을 때이고 아래 구문은 1개만 추가해 보겠습니다.


[server.xml]

<GlobalNamingResources> 

<!-- Editable user database that can also be used by

         UserDatabaseRealm to authenticate users

    -->

    <Resource name="UserDatabase" auth="Container"

              type="org.apache.catalina.UserDatabase"

              description="User database that can be updated and saved"

              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"

              pathname="conf/tomcat-users.xml" />


    <!-- 추가 DB 접근내용1 -->

    <Resource name="JDNI이름" auth="Container"

              driverClassName="oracle.jdbc.driver.OracleDriver"

              factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"

              type="javax.sql.DataSource"

              url="jdbc:oracle:thin:@서버아이피:포트:SID이름"

              username="사용자아이디"

              password="패스워드" />


</GlobalNamingResources>


위와 같이 수정을 하였다면 다음으로 context.xml 파일을 수정 합니다.

추가된 JDNI 이름을 사용 할수 있도록 링크작업을 한다고 생각 하면 됩니다. 


[context.xml]

<context>

.. 

<ResourceLink global="JNDI이름" name="JNDI이름" type="javax.sql.DataSource"/>

..

</context>


위와 같이 <context> </context> 구문사이에 <ResourceLink> 내용을 추가 하면 됩니다. 

이와 같이 설저을 해두면 추가 프로젝트 작업을 진행할때 DB 접근 정보를 몰라도

JNDI이름만 호출해서 바로 DB 접근이 가능합니다. 


간단히 JDNI TOMCAT 설정 방법을 정리 봤습니다. 



반응형
반응형

이클립스 스프링 JNDI 설정 방법


프로젝트를 스프링으로 구성 했을때 JNDI로 DB를 접근해야 하는 경우가 있습니다. 

보통 구축이나 운영 프로젝트를 진행 할때 많이들 사용하게 됩니다.

여러 프로젝트에서 하나의 datasource를 공유해서 사용할때 이용됩니다.

마지막으로 load balancing 이 좋다고 하는게 사용자는 체감을 할수는 없을거라 생각 됩니다.


우선 JNDI 설정은 application(웹사이트) 내에 DB 정보를 설정 하여 접근 하는 방식이 아니고 

WAS(톰캣,제우스,웹로직 등)에서 미리 설정 된 [연결정보name]을 호출 하여 접근 하는 방식입니다.


우선 스프링 구성에서 application-config.xml 파일을 열어 봅니다. 

또는 context-datasource.xml 등의 파일 안에 설정이 있습니다.


가장 간단히 찾아 볼수 있는 방법으로는 프로젝트에서 datasource와 jndi로 검색을 해보면 xml 파일에서 설정되어 있는 부분을 찾을 수 있습니다.


일반적으로 다음과 같이 선언 되어 있습니다.

오라클 DB 기준입니다.  


[jdbc 방식]

<bean id="datasource" class="org.apche.commons.dbcp.BasicDataSource">

  <property name="driverClassName" value="oracle.jdbc.OrcleDriver" />

  <property name="url" value="jdbc:oracle:thin:@아이피:포트:SID" />

  <property name="username" value="접속아이디" />

  <property name="password" value="패스워드" />

</bean>


이것을 JNDI로 변경하면 아주 간단하게 바뀝니다. 


[JNDI 방식]

<bean id="datasource" class="org.springframework.jndi.JndiObjectFactoryBean">

  <property name="jndiName" value="JDNI선언이름" />

  <property name="resourceRef" value="true" />

</bean>


연결 정보가 미리 WAS 서버에서 선어 되어 있기 때문에 이름만 호출 해서 사용을 하면 됩니다. 


TOMCAT에서 JDNI로 DB 연결 정보를 설정 하는 방법 다음글로 올리겠습니다. 

 

반응형
반응형

이클립스(Eclipse) 실행 시 Build workspace (빌드) 느릴때(멈춤) 해결 방법 - vailidation 

이클립스나(Eclipse), 스프링(STS), 전자정부프레임웍(eGovFrame)를 사용하다 보면 수시로 "Building workspace" 절차가 진행 됩니다.

이클립스 하단 상태표시 중에 한참을 표시되면서 진행률 변경이 없을때 그 답답함은 게임을 접속할때 로딩 99%에서 멈춰 응답이 없을때,

그 느낌을 느껴본 사람은 알 것이다. 


이 답답함을 해소 할 수 있는 방법이 있습니다.

이클립스 vailidation 설정을 변경해 "building workspace" 상태를 빨리 벗어나는 방법이 있습니다.

이클립스 설정을 그대로 사용할 경우 vailidation 설정을 그대로 사용하고 있는 경우가 많은데 중요하지 vailidation 설정을 해제하는 방법입니다. 

예로 들면 자바스크립트 검증은 엉뚱한 경고나 오류가 자주 뜨는 경우가 많아 자바스크립트 검증를 꺼두면 좋습니다. 


Window > Preference > Vailidation 을 확인해 본다.




vailidator 목록에서 체크를 해제 하면 검증을 하지 않게 됩니다. 

아니면 Suspend all vailidators 부분을 체크 하면 vailidator 부분이 전체 비활성화 됩니다.

여기에 하나 더 체크설정을 해제 해야 하는 곳이 있습니다.  


프로젝트(마우스우클릭) > Properties > Builders 이동합니다.



그림을 보면 JavaScript Vailidator 부분이 보입니다. 

이 부분을 해제 하면 building (빌드)시간도 단축이 되고 여러모로 시간 이점을 얻을수 있습니다.

반응형
반응형

이클립스(Eclipse) 콘솔(Console) 로그(Log) 출력창 라인수(Line) 늘리는 방법

To increase the number of lines in the Eclipse consolelog output window


Window > Preference > Run/Debug > Console  select 합니다. 

 1. Limit console output 설정 해제 (uncheck)

또는 

2. Console buffer size (characters) 값(value) 을 기존값 80000 에서 적정값으로 크게 올려 주면 됩니다. (Enter larger than 80000)

참고로 아래 그림을 확인하세요



반응형
반응형

이클립스(eclipse) 불필요한 import 정리 단축키


비슷한 코드를 Ctrl+v 작업을 진행 하다 보면 import 가 따라 붙는데 
코드를 수정 하고 나면 불필요한 import가 남는경우가 생깁니다. 

이런때 필요한 단축키가 있다. 

[Ctrl+Shift+O]

이 단축키를 이용해서 소스를 정리 하시면 됩니다. 

java 소스에서 노란 물결로 표시 되는 import 구문들이 조용히 사라집니다.







반응형
반응형

SVN 체크아웃(Checkout) 프로젝트 Maven 설정

이클립스 설정을 기반으로 설명 합니다. 

1. 체크아웃(Checkout)을 받는다 

2. 해당 프로젝트를 선택  Project facets 이동해서 Dynamic Web Module 체크를 확인하고 선택한다.

이동방법 : 프로젝트 선택 >> 마우스 우클릭 >> Properties >>Project facets >> Dynamic Web Module 선택

아래 부터는 이동 방법 형식으로 설명 하겠다. 

3. Convert to Maven Project

이동 : 프로젝트 선택 >> 마우스 우클릭 >> Configure >> Convert to Maven Project 선택

4. 없던 Maven이 보이고 프로젝트를 업데이트 한다. Maven 만들 프로젝트를 선택하면 된다.

이동 :  프로젝트 선택 >> 마우스 우클릭 >> Maven >> Update Project... 선택

5. 선택된 프로젝트를 Maven 빌드를 하기 위해서 Clean을 해준다. 

이동 :  프로젝트 선택 >> 마우스 우클릭 >> Run As >> Maven clean 선택

6. 선택된 프로젝트를 Maven 빌드 한다.  BUILD SUCCESS 가 나오면  성공이다. 

    만일 BUILD FAILED 가 뜨면 5번 클린을 다시 해보고 빌드를 진행해 보자

이동 :  프로젝트 선택 >> 마우스 우클릭 >> Run As >> Maven Install


반응형

+ Recent posts