为第三方WS生成存根类

时间:2010-03-09 15:20:27

标签: web-services grails wsdl2java

我需要将非常复杂的第三方Web服务合并到我的Grails应用程序中。我的计划是使用WSDL2Java从wsdl生成存根类,这是第三方文档中推荐的方法(完整的示例)。首先,我尝试使用Eclipse的Axis2 codegen插件,但最终遇到了InvocationTargetexception。我调试了插件,发现这是因为wsdl是用RPC编码定义的。

有些人建议使用Axis 1.4,所以我现在也安装了它,但遇到了IO异常 - 类型{http://xml.apache.org/xml-soap} DataHandler被引用但未定义。

有人可以建议一种从这个wsdl创建java类的方法,而不必破解wsdl吗?

1 个答案:

答案 0 :(得分: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类。

希望这有帮助。