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

달력

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

최근에 올라온 글

최근에 달린 댓글


기존에 Spring WebServices 로 웹 서비스 클라이언트를 이용하려면 아래와 bean 을 이용하였습니다.




하지만 HTTP Authentication 을 거쳐야 한다면 -ㅁ-;;;  무언가의 작업이 필요합니다.

그냥 원래의 wsdl 주소를 읽으려고 하면 다음과 같은 오류가 발생합니다.
Caused by: javax.xml.ws.WebServiceException: Failed to access the WSDL at: http://localhost:8080/WorkflowWebServices?wsdl. It failed with:
 Server returned HTTP response code: 401 for URL: http://localhost:8080/WorkflowWebServices?wsdl.




1. 브라우저를 통하여 wsdl 에 접근하여 해당 파일을 별도로 저장하여 클래스 패스에 위치시킵니다.
2. wsdlDocumentUrl 프로퍼티를 classpath 에서 읽을 수 있도록 설정합니다.
(해당 wsdl 자체에 접근하려면 인증이 필요한데 wsdl 을 읽을 단계에서는 인증처리가 안되기 때문입니다.)
3. username, password 프로퍼티를 설정합니다.
4. 웹 메소드 호출을 수행합니다.

username 과 password 가 옳지 않으면 다음과 같은 오류가 발생합니다.
Caused by: com.sun.xml.internal.ws.client.ClientTransportException: The server sent HTTP status code 401: Unauthorized

모든 조건을 만족하게 되면 정상적으로 웹 서비스의 웹 메소드를 호출할 수가 있습니다.


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 자수씨
, |

오늘 실서버에 배포를 하다보니... 실서버는 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 자수씨
, |

글 보관함

최근에 받은 트랙백