org.apache.axis.wsdl.toJava.DuplicateFileException:重复文件名: [英] org.apache.axis.wsdl.toJava.DuplicateFileException: Duplicate file name:

查看:31
本文介绍了org.apache.axis.wsdl.toJava.DuplicateFileException:重复文件名:的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 Axis 1.4 从 WSDL 文件创建客户端项目(我没有其他选择,甚至无法使用 Axis 2)并出现以下错误.任何人都可以建议我如何解决它?WSDL 文件由供应商提供.

I am trying to create client project from WSDL file using Axis 1.4 (I don't have other choices, even cannot use Axis 2) and getting following error. Can any one suggest me how can I resolve it? The WSDL file is provided by vendor.

org.apache.axis.wsdl.toJava.DuplicateFileException: Duplicate file name: C:\Documents and Settings\My Documents\CalculateTax\com\NewProj\CompanyCodeType.java.  
Hint: you may have mapped two namespaces with elements of the same name to the same package name.
    at org.apache.axis.wsdl.toJava.JavaWriter.generate(JavaWriter.java:110)
    at org.apache.axis.wsdl.toJava.JavaBeanWriter.generate(JavaBeanWriter.java:1405)
    at org.apache.axis.wsdl.toJava.JavaTypeWriter.generate(JavaTypeWriter.java:113)
    at org.apache.axis.wsdl.toJava.JavaGeneratorFactory$Writers.generate(JavaGeneratorFactory.java:421)
    at org.apache.axis.wsdl.gen.Parser.generateTypes(Parser.java:547)
    at org.apache.axis.wsdl.gen.Parser.generate(Parser.java:432)
    at org.apache.axis.wsdl.gen.Parser.access$000(Parser.java:45)
    at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:362)
    at java.lang.Thread.run(Unknown Source)

推荐答案

您不必使用 Axis 2.

you don't have to use Axis 2.

例如,如果您有这样的 wsdl 部分:

For example, if you have a part of wsdl like this:

  ...
  <xs:complexType name="Address">
    <xs:sequence>
      <xs:element name="Country" type="xs:string"/>
      <xs:element name="City" type="xs:string"/>
      <xs:element name="Town" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="address">
    <xs:sequence>
      <xs:element name="leftSideOfAt" type="xs:string"/>
      <xs:element name="domain" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="OwnerAddress" type="tns:Address" />
  <xs:element name="EmailAddress" type="tns:address" />
  <xs:element name="CompanyEmailAddress" type="tns:address" />
  ...

这是一个合法的 WSDL 定义,但 Axis 失败了.您可以通过重命名 complexTypes 来解决此问题.对于上面的例子:

This is a legal WSDL definition but Axis is failed. You can fix this problem with renaming complexTypes. For above example:

  ...
  <xs:complexType name="Address">
    <xs:sequence>
      <xs:element name="Country" type="xs:string"/>
      <xs:element name="City" type="xs:string"/>
      <xs:element name="Town" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Email">
    <xs:sequence>
      <xs:element name="leftSideOfAt" type="xs:string"/>
      <xs:element name="domain" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="OwnerAddress" type="tns:Address" />
  <xs:element name="EmailAddress" type="tns:Email" />
  <xs:element name="CompanyEmailAddress" type="tns:Email" />
  ...

重点是当你把complexType的名字写成PascalCase"时,会和另一个名字冲突!

The point is when you write a name of complexType as "PascalCase", it conflicts with another one!

这篇关于org.apache.axis.wsdl.toJava.DuplicateFileException:重复文件名:的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆