2010-03-09 4 views
0

꽤 복잡한 제 3 자 웹 서비스를 내 Grails 애플리케이션에 통합해야합니다. 내 계획은 wsdl에서 스텁 클래스를 생성하기 위해 WSDL2Java를 사용하는 것이 었습니다. 그리고 이것은 제 3 자의 문서에서 권장되는 방법이었습니다 (예제가 있습니다). 먼저 Eclipse 용 Axis2 codegen 플러그인을 사용하려고했지만 결국 InvocationTargetException에 부딪혔다. 플러그인을 디버깅하여 wsdl이 RPC 인코딩으로 정의 되었기 때문에 플러그인을 발견했습니다.타사 WS 용 스텁 클래스 생성

일부 사람들은 Axis 1.4를 대신 사용하도록 권장 했으므로 이제는 설치했지만 IO 예외 - Type {http://xml.apache.org/xml-soap}에 대해 발생했습니다. DataHandler는 참조되지만 정의되지 않았습니다.

누구나 wsdl을 해킹 할 필요없이이 wsdl에서 자바 클래스를 생성하는 방법을 제안 할 수 있습니까?

+0

클라이언트를 생성하기 위해 축 1.x 또는 Xfire를 사용하십시오. 발생하지 않으면 WSDL을 어떻게 전달할 수 있습니까? 내가 시도 할 수 있도록? – shivaspk

답변

1

나는 Axis2 wdsl2java를 사용하고 필요한 주석이 달린 코드를 서비스에 복사하고 CXF 플러그인을 사용했다. 나는 또한 내 서비스에 다음 코드

를 넣어
static expose=['cxfjax'] 

내가 (Grails를위한)는 "복잡한"가 있었기 때문에이 있었다해야했던 이유는 내 방법은 원인의

@WebMethod(operationName = "authenticate", action = "http://betterhidethis/authenticate") 
    @WebResult(name = "authenticateResult", targetNamespace = "http:/betterhidethis/") 
    public ArrayOfString authenticate(
     @WebParam(name = "strUserName", targetNamespace = "http://betterhidethis/") 
     String strUserName, 
     @WebParam(name = "strPassword", targetNamespace = "http://betterhidethis/") 
     String strPassword) { 

과 같이 구조 Geneerator는 나중에 사용하는 ArrayOfString 클래스도 만들었습니다.

희망이 도움이됩니다.