블로그 이미지
올해목표 // 10월 어학연수 떠나자~ 자수씨

카테고리

전체글 (1457)
Brand New! (28)
주절주절 (213)
MOT (11)
해외쇼핑 (49)
쇼핑노트 (150)
취미생활 (94)
iPhone (4)
Eclipse (121)
Google (83)
Spring (31)
JAVA (176)
JavaScript (59)
WEB (49)
Database (20)
OS (26)
Tools (8)
Tips (26)
IT정보 (1)
Book (21)
Programming (37)
외부행사 (43)
주변인들 (17)
여행노트 (60)
학교생활 (30)
회사생활 (52)
사회생활 (5)
외국어공부 (12)
잡동사니 (30)
Total
Today
Yesterday
 
01-08 12:24
 

달력

« » 2025.1
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
 

최근에 올라온 글

최근에 달린 댓글


ㅁ JBoss 설치하기
JBoss 다운로드 페이지에 접속하여 JBoss Application Server 5.x 버전을 다운 받습니다.
현재는 5.1.0 버전이 안정적인 최신 버전입니다.



jboss-5.1.9.GA-jdk6.zip 을 다운 받습니다. (jdk6 이 아닌 경우 다른 바이너리를 다운 받습니다.)


적당한 폴더에 압축을 해제합니다. ex) C:\jboss


ㅁ JSF Implementation 설치하기
GlassFish Project Mojarra 페이지에 접속하여 다운로드 페이지로 이동합니다.


현재 최신버전인 2.0.0 RC binary 를 다운 받습니다. (mojarra-2.0.0-RC-binary.zip)


적당한 위치에 압축을 해제합니다. ex) C:\jsf



ㅁ Web Beans 설치하기
SeamFramework Web Beans 페이지에 접속하여 다운로드 페이지로 이동합니다.


Web Beans 최신 릴리즈를 다운 받습니다. (webbeans-1.0.0.PREVIEW1.zip)


Web Beans 도 적절한 위치에 압축을 해제합니다. ex) C:\webbeans



ㅁ Ant 설치하기 (Web Beans 설정시 필요)
Apache Ant 페이지에 접속하여 Ant 1.7.0 버전을 다운로드 받습니다.
(Ant 1.7.1 버전은 재대로 webbeans가 설치가 되지 않는다고 합니다.)

적당한 위치에 압축을 해제하고 환경 변수에 ANT_HOME 과 PATH 를 등록합니다.
ANT_HOME: ant 압축 해제 경로 ex) C:\ant
PATH: [기존 PATH];%ANT_HOME%\bin;


[Web Beans 설치 경로]\jboss-as\build.properties 파일을 열고 jboss.home 속성을 설정합니다.
# Container a number of properties associated with installing Web Beans into JBoss AS and running the TCK in JBoss AS
jboss.home=C:\jboss
org.jboss.testharness.container.javaOpts=-Xms128m -Xmx384m -XX:MaxPermSize=128m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000
# time to allow before attempting to restart JBoss AS
# org.jboss.testharness.container.shutdownDelay=15000
# maximum number of TCK tests to deploy before restarting JBoss AS
# jboss.deployments.restart = 25
webbeans-ri-int.version=5.2.0.Beta2
webbeans.version=1.0.0.PREVIEW1
jboss-ejb3.version=1.0.0

[Web Beans 설치 경로]\jboss-as 에서 다음 명령을 실행합니다.
[Web Beans 설치 경로]\jboss-as>ant update

여러 파일을 다운 받고 BUILD SUCCESSFUL 이 뜨면 성공입니다.


한 것은 별거 없는데 정리하는 건 만만치 않네요;;;



Posted by 자수씨
, |

웹 프로젝트를 생성해서 메이븐 테스트를 돌리려하니 위와 같은 문제가 발생하였습니다.

해결책은 간단합니다.

Maven Dependencies 에 javax.servlet 을 추가해줍니다.

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>


끝~ ㅎㅎㅎ





Posted by 자수씨
, |


예전에 양수열님을 뵈었을 때 말씀하셨던... JBoss Seam...
그 때는 다른 쪽으로 바쁜 상태라 그냥 그렇게 넘어갔는데...

이제야 눈에 들어옵니다.

슬슬 공부 시작하렵니다~ 슈우웅~


 


 

Posted by 자수씨
, |

O/X Mapper 살짝 비교~

JAVA / 2009. 8. 16. 14:04


ㅁ JAXB
Hompage: https://jaxb.dev.java.net/
JDK 6.0 Spec 에 포함된 JAX-WS 에서 사용되는 JAXB 입니다.
Model 객체에 Annotation 을 달아주는 것으로 marshalling/unmarshalling 이 가능합니다.
xjc (xml -> java object), schemagen (java object -> xsd) 와 같은 tool 을 제공합니다.


ㅁ Castor
Homepage: http://castor.org/index.html
mapping 관련 설정 파일 (xml) 을 이용합니다.
다른 것들과 마찬가지로 스키마 파일 (xsd) 가 있다면 mapping 파일 생성에 용이합니다.


ㅁ XMLBeans
Homepage: http://xmlbeans.apache.org/
아파치 프로젝트 중 하나입니다.
스키마를 따로 빌드해주어야 하는 것으로 확인이되어서... model 수정시에는 약긴 귀찮을 것 같습니다.


ㅁ JiBX
Hompage: http://jibx.sourceforge.net/
castor 와 유사하게 binding(mapping) 파일이 필요합니다.
그리고 binding 에 필요한 class 들을 미리 빌드해야 합니다.
가장 퍼포먼스가 좋다고 하네요.




그냥 간단하게 비교만 할 정도로 찾아보았습니다.
제가 JAXB 를 즐겨사용하다보니, JAXB 가 제일 손에 익네요.
어떤 설문 조사를 보니 JiBX 가 퍼포먼스가 좋고 JAXB 가 가장 사용성이 좋다고 합니다.





Posted by 자수씨
, |

예전에 한참 구글 검색하다가 찾아낸 DZone Refcardz 입니다.
이번에 관심이 있는 ServiceMix 4.0 가 올라와서 익숙해질 겸 정리해보려 합니다.


Java Business Integration (JBI)

Java Business Integration (JBI) is a specification developed under the Java Community Process (JCP) for an approach to implementing a service-oriented architecture (SOA). The JCP reference is JSR 208 for JBI 1.0 and JSR 312 for JBI 2.0.

출처: http://en.wikipedia.org/wiki/Java_Business_Integration

Enterprise Service Bus (ESB)

In computing, an enterprise service bus (ESB) consists of a software architecture construct which provides fundamental services for complex architectures via an event-driven and standards-based messaging-engine (the bus). Developers typically implement an ESB using technologies found in a category of middleware infrastructure products, usually based on recognized standards.

출처: http://en.wikipedia.org/wiki/Enterprise_Service_Bus








Posted by 자수씨
, |

요즘에 만들고 있는 maven archetype에 iBatis를 넣을 일이 있어서 설정을 하다보니 sqlmap-config에 resource location이 들어가는 부분이 있는 것을 확인하였습니다.

<sqlMapConfig>

 

        <sqlMap resource="kr/co/vicki/gwt/portal/dao/mysql/sqlmap/Member.xml" />

 

</sqlMapConfig>


다른 파일들은 ${package} 라는 프로퍼티를 사용할 수 있는데, location 같은 '/' 로 구분자를 두는 부분을 어떻게 처리해야 할지 몰라서 고민하던 그때 ${packageInPathFormat} 라는 것을 발견할 수 있었습니다.

즉, groupId가 kr.co.vicki.gwt.portal 이라면
${package} = kr.co.vicki.gwt.portal
${packageInPathFormat} = kr/co/vicki/gwt/portal
으로 변환이 된다는 이야기입니다.

쉽게 해결할 수 있다는 생각에 마음의 안정을 찾고 만든 archetype을 가지고 새로운 프로젝트를 생성하는데 다음과 같은 경고메세지가 떨어졌습니다.
[WARNING] org.apache.velocity.runtime.exception.ReferenceException: reference : template = archetype-resources/src/main/webapp/WEB-INF/sqlmap-config.xml [line 11,column 27] : ${packageInPathFormat} is not a valid reference.

물론 결과는 이런식으로... 변환이 되지 않은 그대로의 sqlmap-config 가 나왔습니다.

<sqlMapConfig>

 

        <sqlMap resource="${packageInPathFormat}/dao/mysql/sqlmap/Member.xml" />

 

</sqlMapConfig>



maven source repository의 소스도 체크아웃 받아서 훑어보고, 구글을 찾아봐도 저 경고에 대한 답은 찾을 수 없었습니다.
머 찾은 것이라고는 위와 관련된 버그 리포팅을 정리한 페이지만 찾을 수 있었습니다.
(내용은 원래 잘 되던건데 왜 다시 reopen 했냐는 이야기만...)

구글과 구글코드 서치를 계속 뒤지던 중에 archetype 파일들 상단에 이상한 것들이 있는 것을 발견할 수 있었습니다.

#set( $symbol_pound = '#' )

#set( $symbol_dollar = '$' )

#set( $symbol_escape = '\' )



검색을 해보니 Velocity 문법이더군요... Maven이 Velocity를 사용한다는 것을 알게 되었습니다.
 Apache Velocity is an open source software project directed by the Apache Software Foundation. Velocity is a Java-based template engine that provides a simple yet powerful template language to reference objects defined in Java code. Its aim is to ensure clean separation between the presentation tier and business tiers in a Web application (see model-view-controller design pattern).

Wikipedia 에서는 Apache Velocity에 대해서 위와 같이 설명을 하는 군요. Java-based 라는 것을 발견하고, Velocity 문법을 살짝 본 후, 다음과 같이 설정을 하고 배포를 해보았습니다.

#set( $symbol_pound = '#' )

#set( $symbol_dollar = '$' )

#set( $symbol_escape = '\' )

#set( $packageInPathFormat = $package.replaceAll('\.', '/') )

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE sqlMapConfig

    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"

    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

 

<sqlMapConfig>

 

        <sqlMap resource="${packageInPathFormat}/dao/mysql/sqlmap/Member.xml" />

 

</sqlMapConfig>


다시 로컬 리포지토리에 install 하고, 새로운 프로젝트를 만들어서 확인해보니 원하는 결과를 확인할 수 있었습니다.


큼큼... 저만 저런 결과를 본 것 일까요... 구글에도 관련 내용이 거의 없는 걸 보아하니 영 깨름직합니다.
삽질한거 같아서...





Posted by 자수씨
, |

자수씨의 자바강의

JAVA / 2009. 7. 6. 11:02

방학을 맞이해서 연구실 차원에서 자바강의를 합니다.

장소 : 북악관 513호 실습실
일시 : 매주 화, 목 1시 (7월 7일만 16시 30분)

강의내용



일단 연구실은 전원 참여!!!
나머지 분들은 알아서 참여 ㅋㅋㅋ



Posted by 자수씨
, |

JAXB로 XML을 마셜링 할 때 사용하는 프로퍼티들 입니다.

사용법은 아래와 같습니다.

JAXBContext jaxbInstance = JAXBContext.newInstance(MapPoint.class);
marshaller = jaxbInstance.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);



프로퍼티들~ 마지막꺼는 해석이.. 잘 안되네요 ㅋㅋㅋ





Posted by 자수씨
, |

[JAXB] DTD -> JAXB Model

JAVA/JAXB / 2009. 7. 2. 12:41

XML 파서와 제너레이터를 만들어야 하는 일이 생겼습니다.
DTD는 있는데 이걸 가지고 JAXB 모델 클래스를 만들자니 귀찮고 해서 검색을 해 보았습니다.

다행히도 JAXB 문서 중에 JAXB- RI Extensions / DTD 가 있었습니다.

일단 xjc를 사용하기 위해 jaxb를 다운받고 인스톨을 한 후 bin 폴더에서 xjc.bat 를 이용하여 테스트를 해보았습니다.




xjc.bat -dtd exchange_v2.dtd

위의 명령을 실행하면 아래와 같은 결과가 제너레이트 됩니다.






위와 같이 하게되면 generated 라는 패키지로 생성이 됩니다. 간략한 옵션으로 원하는 패키지로도 생성할 수 있습니다.

xjc.bat -p kr.co.vicki.ex -dtd exchange_v2.dtd







Posted by 자수씨
, |

아주 간단한 Java Tip!!

JAVA / 2009. 6. 16. 12:47

자바에서 스트링을 비교할 때는 다음과 같이 equals() 메소드를 이용합니다.


하지만 위의 메소드에서 target 이 null 이라면... 런타임에 NullPointerExeption 을 던저줄 것입니다.

그걸 막고자 아래와 같이 코딩을 한다면 무언가 낭비한다는 느낌이 듭니다.



이런걸 아래와 같이 써보는 것은 어떨까요?
target이 null 이더라도 알아서 검사가 됩니다. (상수나 문자열 리터럴을 통해 비교를 하는 것입니다)


위와 같이 코딩하는 습관을 들이면 NullPointerException 을 조금 덜 볼 수 있을 것입니다~~



Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백