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

달력

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

최근에 올라온 글

최근에 달린 댓글


예전에 한번 시도하였으나 실패했던 eclipse.refreshLocal ANT Task 실행을 다시한번 시도해보았습니다.
[이전글] 2008/09/14 - [Eclipse] - eclipse.refreshLocal ant task 실행이 안되는...


일단 오래 묵혀둔 숙원사업을 하나 해결한 듯 합니다~ 랄랄라~





Posted by 자수씨
, |

오늘 실서버에 배포를 하다보니... 실서버는 ethernet 이 4개나...

그전에 만들었던 LocalJaxWsServiceExporter 로는 맨처음 걸린 ethernet 의 아이피로만 배포가 되었습니다.
참고링크: 2008/11/24 - [JAVA/WebServices] - [Spring MVC] SimpleJaxWsServiceExporter 수정~


그래서 시스템의 모든 ethernet 컨트롤러를 조사하여 각각의 endpoint 로 배포하는 것을 맹글어 보았습니다.


InetAddress 로는 한계가 있기에 NetworkInterface 클래스를 이용하여 처리를 하였습니다.
참고자료: http://www.cowtowncoder.com/blog/archives/2007/05/entry_35.html

_M#]
나중에 java.net 패키지의 클래스들을 정리해봐야겠습니다.
유용한 것들이 많네요~




Posted by 자수씨
, |

[JAVA] 퀴즈퀴즈~

JAVA / 2009. 1. 5. 21:11


아래 소스를 보고 느낀 점이 있나요??

 



개굴개굴...

Posted by 자수씨
, |
요즘 회사에서 한참 만들었던 양식마법사에 언어팩을 적용하기위해서 Externalize Strings... 기능을 이용하여
열심히 작업하고 있었습니다. 허나.. Anntation 에 있는 스트링들은 검출이 안되는 것이었습니다.

 


위의 검증포멧을 처리하고 싶은데... 방법이 없을까 고민하던 순간 Annotation attribute 값을 static 값으로
처리를 해볼까 해서 다음과 같이 해보았습니다.

이클립스가 친절하게 빨간줄을 그어주십니다.
The value for annotation attribute PropertyDescription.label must be a constant expression


다년간의 통밥을 통해 static final 로 만들고 Exteneralize Strings... 를 돌렸으나...

그냥 static final 로 할 때는 에러가 안났는데 역시 최종적으로 상수가 되어야지만 처리가 가능한 것 이였습니다.


Annotation 을 처리하는 부분에서 attribute 의 값을 key 로 하는 처리를 따로 해주어야 할 것 같습니다. -_ㅜ

오늘까지 완료해야하는데 ㅋㅋㅋㅋ



Posted by 자수씨
, |

JDK 7 변경사항들~

JAVA / 2008. 12. 22. 10:40

SDNKorea 에서 간만에 유익한 정보를 얻었습니다. 
그건 바로 동국님의 블로그에 있는 [JDK] JDK 7의 변경사항 이었습니다.

평소 새로운 기술과 문법을 잘 쓰고 있다고 생각했는데 1.4 문법으로 많이 사용하는게 있었습니다.

관심이 있는 부분은 Map for-each 와  List/map accessInfer generics in declarations, String switch
String interpolationResource management, Null-handling ...

특히 io 관련 객체들을 close 하지 않고 처리해주는 Resource management 가 가장 인상적이었습니다.
예전에 실서버에 BufferedStream 을 닫지 않아서 몇 일 운영하게 되면 파일 처리를 하지 못하는 문제가
생겼었습니다. (실수로 딱 한 부분만...) 그 후 모든 소스를 뒤져야 하는 아픔을 겪었지만...

그러고 보니 다 땡기네요...

근데 이러한 것들이 컴파일 타임에 처리를 하는 건지 아니면 런타임시에 처리를 하는 것인지는 궁금하네요.
코어쪽을 직접 까볼 수도 없고 ㅋㅋㅋ 나중에 JDK7 이 나오면 디컴파일 한번 해봐야겠습니다.

자세한 사항은 동국님 블로그구글Docs를 참고하시기 바랍니다.
(정보를 퍼오는 글이라 여기에 세부적인 내용을 담기에는 양심이...)


Posted by 자수씨
, |

오늘 문득 공통 라이브러리를 만들다가 예전에 지나가면서 본 varargs 를 떠올리고 실제로 적용해 보았습니다.
그래서 정리를 살짝~


http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html

Varargs

This facility eliminates the need for manually boxing up argument lists into an array when invoking methods that accept variable-length argument lists. Refer to JSR 201.

C 언어에 있는 가변 인수를 자바스타일로 적절하게 변환을 해 놓은 듯 합니다.
(C 언어에서는 ... 과 va_list, va_start, va_arg, va_end 와 같은 매크로를 사용함)


자바에서는 ObjectType... 키워드를 통해서 varargs 를 지원합니다.
아래 코드의 args 인자는 String[] 처럼 사용할 수 있습니다.



우리가 자주사용하는 String 클래스에서 format static method 에서도 이런 varargs 를 사용하고 있습니다.



Sysetm.out.printf() 메소드도 varargs 를 통해 C 스타일의 printf() 함수 처럼 사용할 수 있습니다.



잘만 활용하면 그간 String 배열로 인자를 받는 부분을 저런식으로 받을 수 있어 소스는 조금 더 깔끔해 질 수 있을 것 같습니다.
컴파일러에서 객체 배열로 알아서 변환해 주는가에 대해서는 디컴파일을 해봐야 겠습니다.

나온지도 꽤 된거 같은데 왜 좋은 기능을 모르고 안쓰고 있었을까요 =ㅁ=;;;



Posted by 자수씨
, |
org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter 를 이용하여 웹서비스를 등록할경우 호스트를 하드코딩해야 해서 개발과 운영서버에 각각의 아이피를 적어줘야 하는 불편함이 있었습니다. 그래서 초큼 수정해보았습니다.

LocalJaxWsServiceExporter.java


스프링 설정



과연 국내에서 Spring 으로 웹서비스하는 사람은 나밖에 없는건가 -_ㅜ... 검색을 해도 안걸리네...




Posted by 자수씨
, |

iBatis 에서 문제가 발생하면 실행되는 쿼리를 확인해보고 싶은 마음이 굴뚝 같을 것입니다.
아래와 같이 설정을 해주면 볼 수가 있습니다.




빔프로젝트 파시는 개굴옹에게 바칩니다.

Posted by 자수씨
, |

스프링프레임워크에서 제공해주는 SimpleJaxWsServiceExporter 로는 한 컨텍스트 내에서 한 개의 서비스밖에
배포를 못하는 것으로 확인되었습니다. (저의 테스트 결과로는...)

그래서 스프링쪽 클래스를 참고해서 다중 Exporter 를 만들어보았습니다.



음... 이제는 실제로 배포할 경우 baseAddress 에 대해서 고민 좀 해야할 것 같습니다.

Posted by 자수씨
, |

첨부파일을 JAX-WS 에서는 어떻게 넘길가가 궁금해서 한번 도전해보았습니다.
무모한 도전의 결과는 무한삽질의 반복이...
여튼 어느정도 성공을 한 듯 합니다. ㅋㅋㅋㅋ

ㅁ Server Side
kr/co/vicki/webservices/conf/uploadWebservicesContext.xml


WEB-INF/web.xml


kr.co.vicki.webservices.webservice.UploadWebService.java


  - @MTOM: binary attachment 전송을 위한 어노테이션
  - @SOAPBinding(style = SOAPBinding.Style.RPC)... 이건 무슨 말인지 모르겠습니다. 
    아래와 같은 설명이 어딘가에 있더라구요... 해석이 딸리므로... 읽으시는 분께 맡기겠습니다.
    그러나 해당 어노테이션이 정의되어 있지 않으면 클라이언트쪽에서 제너레이션 된 메소드의 파라미터가
    byte[] 이 아닌 DataHandler 가 되므로 일단 어노테이션을 위와 같이 설정합니다.
No, this is specified by the SOAPBinding annotation on the service class. Notice this in the original post above:

@SOAPBinding(style = SOAPBinding.Style.RPC)

This is telling wsgen that this is an rpc/literal service. A document/literal (doc/lit) service is specified thusly:

@SOAPBinding(style = SOAPBinding.Style.DOCUMENT)

Actually, things are a little more complicated. This is actually specifying a doc/lit/wrapped service, meaning that the SOAP message body can contain multiple parameters. By contrast, in a doc/lit/bare service, the SOAP message body can contain only one parameter. For all the gory details, see the Annotations section of the JAX-WS User's Guide. 




ㅁ Client Side
kr/co/vicki/client/conf/webservicesContext.xml



kr/co/vicki/client/Client.java


서버의 public void fileUpload(String filename, DataHandler handler) 메소드는
클라이언트에서 public void fileUpload(String filename, byte[] arg1) 로 제너레이션 됩니다.
파일을 byte[] 로 변환하여 파일명과 함께 넘겨주게 되면 서버쪽에서 inputStream 으로 접근이 가능하게 됩니다.

첨부파일을 7KB와 4MB, 20MB 로 테스트 해본결과 20MB 는 힙 메모리 부족이라는 익센션을 날려주었습니다.
JAX-WS User Guide를 보면 용량 제한하는 어노테이션도 보이던데 테스트는 해보지 못했습니다.

이걸 해보며서 알게된 사항은 org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter 이놈은 한 컨텍스트에
한개의 웹서비스를 Export 해주는 것 같습니다. 크흑..

웹서비스는 재밌습니다?

[참고자료]
JAX-WS User Guide
  - https://jax-ws.dev.java.net/guide/Large_Attachments.html
  - https://jax-ws.dev.java.net/guide/Binary_Attachments.html
  - https://jax-ws.dev.java.net/guide/Creating_a_MTOM_Web_Service.html
java.net Forums
  - http://forums.java.net/jive/thread.jspa?threadID=25614

Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백