我有一个用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>解决这个问题 冲突
的第16行http://localhost:50358/WebService.asmx?wsdl
[错误]以下位置与上述错误行相关
中的17个http://localhost:50358/WebService.asmx?wsdl
但是,如果我删除datatable变量,它可以工作,但我需要数据表。
我该如何解决这个问题?
答案 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>
答案 2 :(得分:0)
我删除了所有数据表,并使用了List&lt;&gt;而不是数据表