블로그 이미지
올해목표 // 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
 
05-19 06:28
 

달력

« » 2024.5
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
 

최근에 올라온 글

최근에 달린 댓글


clean 하고 package, install, deploy 하는 작업이 귀찮아서... 플러그인 수정했슴돠...





ㅋㅋㅋ

Posted by 자수씨
, |

maven-jar-plugin 프로젝트 페이지에 있는 http://maven.apache.org/plugins/maven-jar-plugin/usage.html 를 참조하여 아래와 같이 작성하였으나 재대로 파일이 필터링이 되지 않습니다.

패키징 시에 conf/config.properties 를 빼려고 하였으나...

<project>
  ...
  <build>
    <plugins>
      ...
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.3.1</version>
        <configuration>
          <includes>
            <include>**/config.properties</include>
          </includes>
        </configuration>
      </plugin>
      ...
    </plugins>
  </build>
  ...
</project>



계속 테스트를 하고 자료를 찾다보니, maven-jar-plugin 버전을 2.3 으로 처리한 것을 발견하여 버전만 바꾸니... 잘됩니다.


<project>
  ...
  <build>
    <plugins>
      ...
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.3</version>
        ...
      </plugin>
      ...
    </plugins>
  </build>
  ...
</project>



끙;;; 도대체 뭥미...



Posted by 자수씨
, |

윈도우 기준, %MAVEN_HOME%\bin\mvn.bat 를 수정합니다.

...
@REM Start MAVEN2
:runm2
set CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
set MAVEN_OPTS="-XX:MaxPermSize=364m"
%MAVEN_JAVA_EXE% %MAVEN_OPTS% -classpath %CLASSWORLDS_JAR% "-Dclassworlds.conf=%M2_HOME%\bin\m2.conf" "-Dmaven.home=%M2_HOME%" %CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
if ERRORLEVEL 1 goto error
goto end
...

heap size 문제가 발생하면 -Xmx=512m 정도로 설정해주면 될 듯하네요~



Posted by 자수씨
, |

JAXB를 통해 XML을 생성하게 되면 아래와 같은 헤더가 자동적으로 생성됩니다.

<?xml version="1.0" encoding="EUC-KR" standalone="yes"?>

위의 헤더 외에 DTD를 지정해야 한다면, 그리고 standalone="yes" 속성을 제거해야 할 경우가 생겨서 수 많은 검색 끝에 해결책을 찾아냈습니다.


Marshaller marshaller = JAXBContext.newInstance(XXX.class).createMarshaller();
marshaller.setProperty(Marshaller.JAXB_ENCODING, "EUC-KR");
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);

...

StringWriter writer = new StringWriter();
writer.append("<?xml version=\"1.0\" encoding=\"EUC-KR\"?>\r\n");
marshaller.get().marshal(xxx, writer);

JAXB_FRAGMENT 를 true 로 설정하면 상단의 헤더를 제외하게 됩니다. 마샬링을 하게 되는 Writer 객체에 사용할 헤더를 append 시키는 것으로 처리할 수 있습니다.


마샬러에 프로퍼티를 설정하면 된다는 글도 있었는데, 잘 안되는 것 같아 위의 방식을 사용하였습니다.

Posted by 자수씨
, |

JEUS 6 + Oracle 11g 조합으로 다른 서버에서 잘 돌아가던 쿼리를 돌리니 운영 환경에서는 아래와 같은 오류가 뜹니다.

uncategorized SQLException for SQL []; SQL state [null]; error code [17004];
Invaild column type


문제의 원인은 null 이 들어가서 타입이 맞지 않게 되는 것 같은데... 해결방법은 다음과 같습니다.

insert into Person (name, age, address)
values (#name#, #age#, #address#)

원래의 쿼리가 위와 같을 경우 address 가 null 로 들어갈 때 발생하게 된다면...

insert into Person (name, age, address)
values (#name#, #age#, #address:VARCHAR:NO_ENTRY#)

타입 지정과 null 이 들어오더라도 처리할 수 있도록 변경해 줍니다. 저래야 jdbc 에서 setNull 처리를 해주는 것 같습니다.

킁;;;  세상은 우리의 편이 아닌 듯...

Posted by 자수씨
, |


회사일을 하다가 불연듯 아이디어가 떠올라서 프로그램을 만들다 보니 XML 설정파일을 만들 일이 생겼습니다. JAXB 로 뚝딱뚝딱 만들고 xml 을 생성하다보니 무엇인가 아쉬움이 있었습니다.

"Code Assist 가 있었으면 좋겠는걸?"

처음에는 dtd 를 만들어볼까 했지만, 먼가 수작업이 많이 들어갈 것 같아 JAXB 문서를 참고해서 생성하였습니다.



위의 코드를 쉽게 설명하자면 Vicki 라는 클래스는 XmlRootElement 입니다. 관련된 클래스를 모두 context 에 설정하는 것이 아니라 XmlRootElement 만 설정하면 됩니다.

xml 형식은 언제든지 변하니 소스로 만들어 놓으면 쉽게 샥샥 처리될 듯 합니다.

참고사이트: http://jaxb.java.net/guide/Invoking_schemagen_programatically.html

Posted by 자수씨
, |


문자열의 내용을 바꿀 때 "String.replaceAll()" 메소드를 주로 사용하게 될 것입니다.

하지만 첫번째 파라미터가 정규표현식이기 때문에 교체할 문자열에 특수문자가 들어간다면 원하는 결과를 얻지 못하게 될 것입니다.

위의 문제를 해결할 방법을 고민하다가 아래 메소드를 만들어보았습니다.



교체할 문자열 자체를 정규표현식에서 인식할 수 있도록 한번 변경해준 다음에 처리를 하는 메소드입니다.

아직까지는 문제없이 잘 돌아갑니다. ㅎㅎ

문제가 생겼습니다. replacement 에 특수문자가 들어가면 원하는 결과를 얻을 수 없습니다.

다음과 같이 수정하면 원하는 결과를 얻을 수 있습니다. ㅎㅎㅎ





Posted by 자수씨
, |


그냥 사용하면 아래와 같은 Exception 이 발생합니다.

BeanUtils.copyProperties No value specified for 'BigDecimal'



프리미티브 타입이 아니여서 그런가 봅니다...

아래와 같이 BigDecimal 을 등록해줍니다.

ConvertUtils.register(new BigDecimalConverter(null), java.math.BigDecimal.class);



참고자료: http://www.mail-archive.com/struts-user@jakarta.apache.org/msg58708.html

Posted by 자수씨
, |


중괄호 '{ }' 로 피연산자의 id 가 정의된 수식 파서를 개발해야할 일이 있어, 학부 때 배웠던 자료구조 책을 펼쳐보다가 좌절을 하고 고민하고 있었습니다.

{id} + {id2} * 0.1 * {id3}

위와 같은 식이 있을 경우 아이디와 맵핑이 되는 값을 치환하여 파싱을 하고 계산을 해야 하는데...
 
계속 고민하다가 떠올린 것이 Javascript eval 함수였습니다. 이걸 자바에서 가능하게 해주는 것이 javax.script.ScriptEngine 입니다. (예전에 Rhino 라는 이름으로 자바에서 사용하는 스크립팅 엔진이라는 것을 들었는데 JDK 1.6 에서 포함된 것 같습니다. 정확하진 않아요;;;)

ㅁ JAVA


ㅁ JavaScript



eval 을 이용하면 문자열도 자연스럽게 합칠 수 있답니다.

이제 적용할 일만 남았네요~

Posted by 자수씨
, |


2011/01/07 - [JAVA] - log4j.properties 파일 위치 변경하기

위의 글에서 log4j 설정 파일 위치 바꾸는 법에 대해 포스팅한 적이 있었습니다.


java -Dlog4j.configuration=file://C:/system/conf/log4j.properties -classpath ...

당연히 위와 같이 하면 될 줄 알았는데...

java.net.UnknownHostException: C

위와 같이 익셉션이 발생합니다.

구글링을 통해 찾은 해법은 드라이브 명 앞에 '/' 를 붙여주는 것 입니다.

java -Dlog4j.configuration=file:///C:/system/conf/log4j.properties -classpath ...


흠냐... 혹시 까먹을까봐 정리합니다.


참고사이트: http://www.hipergate.org/forums/forum_view.jsp?gu_msg=7f000001febeb992f21000498b66d043&gu_newsgrp=7f000001f8220cbd4b100000ed0cc78e

Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백