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

달력

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

최근에 올라온 글

최근에 달린 댓글


수업 시간에 아주 흥미로운 이야기를 들었습니다.
자바에서 스트링 비교에서 == 연산자로 비교를 할 수 있다고 하시더군요~~



실행결과
true
false


평소에 배워오던 스트링 비교에서는 equals() 메소드를 써야한다고 배웠는데...

일반적으로 new String() 을 하게되면 Heap 영역에 독자적인 메모리 공간을 갖게 되는데,
그냥 "..." 로 스트링을 만들 경우에는 Heap 영역에 스트링 풀에서 관리를 한다고 합니다.
같은 스트링은 한 개만 저장한다고 하네요~

자바를 시작한지 6년이 지났는데... 정말 충격적인 사실이였습니다. ㅋㅋㅋㅋ


Posted by 자수씨
, |

회사 프로젝트 코드에서 공백이 포함된 문자열을 공백을 제거할 로직을 추가할 일이 있어서
아래와 같은 방식으로 수정을 하였습니다.


허나 결과는...
Vicki Yi : Vicki Yi

정규식에서 공백은 정확하게 공백으로 인식을 못하는 것 같았습니다.
Pattern JavaDoc 에서 내용을 확인하였습니다.
http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html

POSIX character classes (US-ASCII only)
\p{Lower} A lower-case alphabetic character: [a-z]
\p{Upper} An upper-case alphabetic character:[A-Z]
\p{ASCII} All ASCII:[\x00-\x7F]
\p{Alpha} An alphabetic character:[\p{Lower}\p{Upper}]
\p{Digit} A decimal digit: [0-9]
\p{Alnum} An alphanumeric character:[\p{Alpha}\p{Digit}]
\p{Punct} Punctuation: One of !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
\p{Graph} A visible character: [\p{Alnum}\p{Punct}]
\p{Print} A printable character: [\p{Graph}\x20]
\p{Blank} A space or a tab: [ \t]
\p{Cntrl} A control character: [\x00-\x1F\x7F]
\p{XDigit} A hexadecimal digit: [0-9a-fA-F]
\p{Space} A whitespace character: [ \t\n\x0B\f\r]


그래서 아래와 같이 수정하였습니다.


결과는~~~ 원하는 결과가 나왔습니다.
Vicki Yi : VickiYi


정규식을 안쓰면 indexOf() 와 replace 를 while 문으로 돌려서 처리를 해야 하기에 역시 정규식이 깔끔한 것 같습니다.


Posted by 자수씨
, |

예전에 개발을 했었던 로컬편지함을 인수인계 하는 과정에서 자바에서 윈도우즈 레지스트리에 접근하는 라이브러리를 사용하는 부분이 있었는데 실행을 하게 되면 아래와 같은 에러가 발생하였습니다.

ERROR You have not installed the DLL named 'ICE_JNIRegistry.DLL'.
        no ICE_JNIRegistry in java.library.path
Exception in thread "main" java.lang.UnsatisfiedLinkError: com.ice.jni.registry.RegistryKey.createSubKey(Ljava/lang/String;Ljava/lang/String;I)Lcom/ice/jni/registry/RegistryKey;
        at com.ice.jni.registry.RegistryKey.createSubKey(Native Method)
        at kr.co.vicki.example.jniregistry.JNIRegistryExample.main(JNIRegistryExample.java:13)

윈도우즈의 레지스트리를 수정하는 라이브러리 dll 을 클래스 패스에 넣고 실행했는데도 위와 같은 에러가 발생 한 것이였습니다. 오래전의 기억을 더듬다 보니 아래의 자바 실행 옵션을 확인할 수 있었습니다.

java -Djava.library.path=[native dll path]


저의 경우에는 native 폴더에 dll 을 넣어두었기 때문에 아래와 같이 실행하였더니 정상적으로 실행되었습니다.

java -Djava.library.path=native -jar LocalMailBox.jar

실행 옵션외에도 LD_LIBRARY_PATH 를 환경변수로 잡아주거나, 실행시 System.loadLibrary, System.load 로 동적 라이브러리를 로드할 수 있습니다.



Posted by 자수씨
, |

썬 테크 블로그 생활을 한지 어느정도 된거 같은데 처음으로 소개가 되었습니다.
(그간 자료가 ㅎㄷㄷ 해서...)

JCO 에 다녀온 포스팅이 소개가 되었는데, 그덕에 투데이가 높아져서 흐믓합니다. ㅋㅋㅋ



앞으로는 기술자료 쪽으로 좀 소개가 되었으면 좋겠는데...
그럴려면 양질의 포스팅을 해야 한다는... 털썩...



Posted by 자수씨
, |

열심히 만들어댔던 maven-gwtext-archetype 을 외부로 배포가 가능해졌습니다.
그리하여 언제 어디서나 손쉽게 gwtext 프로젝트를 생성할 수 있습니다.

원격 리포지토리를 통해서 프로젝트 생성하기

mvn archetype:create -DarchetypeGroupId=kr.co.vicki.gwt -DarchetypeArtifactId=maven-gwtext-archetype -DarchetypeVersion=1.0.0.v20090216 -DremoteRepositories=http://db.skuniv.ac.kr/nexus/content/repositories/releases -DgroupId=myGroupId -DartifactId=myArtifactId

몇 가지 [WARNING] 이 발생하긴 하지만 정상적으로 프로젝트가 생성이 될 것입니다.

생성된 폴더(위의 명령 그대로 치게 되면 myArtifactId) 로 이동하여 아래 명령을 실행하여 GWT 에뮬레이터가 뜨는지를 확인합니다.

mvn com.totsp.gwt:maven-googlewebtoolkit2-plugin:gwt


생성된 프로젝트에 대한 설명은 조만간 시간이 날 때~~~


Posted by 자수씨
, |

역시나 한방에 재대로 되는 것은 없는 것 같습니다.
Spring-Webservices 를 통해서 구현된 웹서비스인데 JDK 6 + Tomcat 6.x 환경에서는 무리없이 돌아갔으나
앞에서의 무수한 역경을 헤치고 나왔으나 또 문제가 발생합니다.

이번에는 아래와 같은 문제를 뿜어내었습니다.
com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotationExceptions 
[your interface] is an interface, and JAXB can't handle interfaces.
        this problem is related to the following location:
                at [your interface]
[your interface] does not have a no-arg default constructor.
        this problem is related to the following location:
                at [your interface]

당연히 인터페이스는 생성자를 갖을 수 없습니다. 하지만 spring framework 의 DI 를 이용하다보니 인터페이스를
통해 파라미터를 넘기기에... 문제가 발생하는 것이었습니다.



apt 툴을 통해서 생성된 웹메소드 구현체와 Response 파일에서 인터페이스가 파라미터로 넘어가는 경우에서 발생하는 것인데
발생되는 메소드가 웹메소드도 아니고 스프링에서 사용하는 setter 메소드여서 [java.net forum 검색] 을 통해 해결책을 찾았습니다.

사용되지 않는 메소드에 아래와 같은 Annotation 을 설정해줍니다.
@WebMethod(exclude = true)



후훗... 잘 됩니다. 원래 어제 새벽에 저렇게 했었는데 재대로 갱신을 안해서 -_ㅜ...

여튼 이제 실서버에 배포할 일만 남았다습니다~ ㅋㅋㅋ





Posted by 자수씨
, |

앞에서 javax.xml.stream.supportDTD 에 접근까지는 해결했으나 클래스를 찾을 수 없다는 익셉션이 발생하였습니다.

이 문제는 라이브러리만 추가하면 되기에~~


[JAX-WS HOME] 으로 이동하여 최신 바이너리를 다운받습니다.
Download NOW 2.1.5 버튼을 Click!! 합니다.


다운 받은 jar 파일을 아래의 명령을 통해 실행시키거나 더블클릭을 하면 간단한 절차를 마치고 압축이 풀리게 됩니다.
(윈도우에서 jar 파일의 실행이 java 로 연결된 경우에만 더블클릭이 가능합니다.)
java -jar JAXWS2.1.5-20081030.jar

그 중에서 아래의 jar 파일들을 [your webapps]/WEB-INF/lib 에 복사를 합니다.
  • stax-ex.jar
  • streambuffer.jar
  • jaxws-rt.jar
  • jaxws-api.jar
  • jaxb-api.jar
  • jaxb-impl.jar

이제 ClassNotFoundException 은 보이지 않습니다~
하지만 다른 오류를 뿜어내는 Weblogic 입니다...




Posted by 자수씨
, |

예전에 만들었었던 웹서비스가 AIX + IBM JDK + Weblogic 9.2 에서 돌아가지 않고 이상한 익셉션을 뿌려대었습니다.

java.lang.IllegalArgumentException: Unable to access unsupported property javax.xml.stream.supportDTD

JDK 6 + 톰캣 6.x 에서는 문제없이 돌아가던 내 웹서비스가...

역시 웹서비스 관련 자료는 국내에 거의 없었습니다. 구글과 함께 문제를 해결하기 위해 JCO 를  보다가 찜찜해서
회사로 뛰쳐들어와서 해결책을 찾기 시작하였습니다.

[검색자료]를 통해서 어느정도 해결책을 찾은 것 같았는데... 도대체 weblogic-application.xml 을 어디에 두어야 할지를
찾을 수가 없었습니다.

그것의 답은 [해당링크] 를 통해 확인할 수 있었습니다.

[your webapps]/META-INFO/weblogic-application.xml




이젠 다른 오류를 뿜어댑니다. ㅋㅋㅋ
다음을 처리하러 고고싱~


Posted by 자수씨
, |

지난번에 만들었던 archetype 을 deploy 를 못해서 고생했었는데 헛다리만 짚고 있던거였습니다.

기선님블로그를 보고 깨달음을 얻고서 배포에 성공하였습니다.

일단 자신의 LocalRepository 의 .settings.xml 을 수정해야 합니다.

<servers> tag

위와 같이 구성하는데, username 과 password 는 nexus 에서 설정한 배포유저의 설정값으로 각자 수정해야합니다.

<mirrors> tag

nexus 를 설치한 경로로 url 설정만 바꾸어주면 됩니다.

제가 실수했던 부분이 바로 mirror 로 설정했던 곳 (public group) 과 repository 를 착각하고 있었던 것이였습니다.
pom.xmldistributionManagement 설정을 mirror 설정으로 잡아서 재대로 안된 것이었습니다.

before pom.xml :: <distributionManagement>


after pom.xml :: <distributionManagement>



archetype 프로젝트 폴더에 가서 아래 명령을 실행합니다.
mvn deploy

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Thu Feb 26 17:07:57 KST 2009
[INFO] Final Memory: 9M/17M
[INFO] ------------------------------------------------------------------------

반가운 메시지와 함께 성공!!!!

아... 잘됩니다만 또 다른부분을 건들여놔서 그걸 또 해결해야 하네요...

이번에는 maven-archetype-webapp 쪽이 말썽~



Posted by 자수씨
, |

이제 콘솔창에서 많이 해봤으니 이클립스 플러그인으로 넘어갈때도 된 것 같아 플러그인을 설치하려고 합니다.

설치환경
ㅁ JDK: jdk1.6.0_11
ㅁ Eclipse: Version: 3.4.1 Build id: M20080911-1700


업데이트 주소인 http://m2eclipse.sonatype.org/update/ 로 있는 것들을 다 체크하니 호환성에 걸리는 군요...
아래와 같은 구성으로 설치를 합니다.


설치를 한 후에 이클립스를 재시작하면 기분나쁘게 콘솔창에 아래와 같이 뜹니다.


좀 기분이 이상해서 Java Bule 님의 블로그를 참조해서 수정하였습니다.
실행시킬 이클립스의 eclipse.ini 파일을 열어서 아래부분을 추가해줍니다.
-vm
[JDK 설치경로]\bin\javaw.exe

그런 후 이클립스를 다시 시작하면 됩니다.

Dependency Graph 마음에 드는군요~ 훗~ 이건 GMF 로 만든건가...





Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백