使用wsimport导入.net webservice时出错

时间:2012-06-22 12:41:37

标签: c# java web-services wsdl wsimport

我有一个用c#编码的web服务。 我想在java应用程序中使用它,所以我试图用wsimport导入它与这些参数:

wsimport -keep -verbose -B-XautoNameResolution http://localhost:50358/WebService.asmx?wsdl

我的网络服务中有一个这样的课程:

 public class ReturnClass
{
    int _returnCode;
    DataTable _outputDataDT;


    public int ReturnCode { set { _returnCode = value; } get { return _returnCode; } }
    public DataTable OutputDataDT { set { _outputDataDT = value; } get { return _outputDataDT; } }

}

如果我使用Datatable变量,wsimport会返回此错误:

  

[错误]属性“任何”已定义。使用< jaxb:property>解决这个问题   冲突    http://localhost:50358/WebService.asmx?wsdl

的第16行      

[错误]以下位置与上述错误行相关   http://localhost:50358/WebService.asmx?wsdl

中的17个

但是,如果我删除datatable变量,它可以工作,但我需要数据表。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

查看您的模式,JAXB看到两个具有相同名称的属性,并且无法确定在生成的Java代码中调用字段的内容。您需要创建外部自定义绑定文件。在http://docs.oracle.com/javase/tutorial/jaxb/intro/custom.html阅读更多相关信息.wsimport命令有一个-b选项,可用于指定绑定文件。

答案 1 :(得分:0)

发布你的wsdl。

另外:它可能是一个类型/元素命名冲突,在这种情况下你只需使用

即可逃脱
<nameXmlTransform>
  [ <typeName [ suffix="suffix" ]
              [ prefix="prefix" ] /> ]
  [ <elementName [ suffix="suffix" ]
                 [ prefix="prefix" ] /> ]
  [ <modelGroupName [ suffix="suffix" ]
                    [ prefix="prefix" ] /> ]
  [ <anonymousTypeName [ suffix="suffix" ]
                       [ prefix="prefix" ] /> ]
</nameXmlTransform> 

http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/2.0/tutorial/doc/JAXBUsing4.html#wp148550

答案 2 :(得分:0)

我删除了所有数据表,并使用了List&lt;&gt;而不是数据表