0

我需要在我的 Grails 应用程序中加入一个相当复杂的第 3 方 Web 服务。我的计划是使用 WSDL2Java 从 wsdl 生成存根类,这是第 3 方文档中推荐的方法(附有示例)。首先,我尝试为 Eclipse 使用 Axis2 codegen 插件,但最终遇到了 InvocationTargetexception。我调试了插件,发现是因为wsdl是用RPC编码定义的。

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

任何人都可以建议一种从这个 wsdl 创建 java 类的方法,而不必将 wsdl 分开吗?

4

1 回答 1

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 类。

希望这可以帮助。

于 2010-08-19T23:35:54.327 回答