Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
axis2无法从具有内联架构的wsdl生成java_Java_Xsd_Axis2_Wsdl2java - Fatal编程技术网

axis2无法从具有内联架构的wsdl生成java

axis2无法从具有内联架构的wsdl生成java,java,xsd,axis2,wsdl2java,Java,Xsd,Axis2,Wsdl2java,我想从WSDL生成Java类。我正在从ant任务中调用wsdl2java。命令行如下所示: java -cp ... org.apache.axis2.wsdl.WSDL2Java -o generated_dir -S . -R . -l java -p "com.make.me.rich" -d adb -or --noBuildXML -uri MakeMeRich.wsdl MakeMeRich.wsdl包含来自Micrsosoft的内联模式,例如: <xsd:schema el

我想从WSDL生成Java类。我正在从ant任务中调用wsdl2java。命令行如下所示:

java -cp ... org.apache.axis2.wsdl.WSDL2Java -o generated_dir -S . -R . -l java -p "com.make.me.rich" -d adb -or --noBuildXML -uri MakeMeRich.wsdl
MakeMeRich.wsdl包含来自Micrsosoft的内联模式,例如:

<xsd:schema elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
  <xsd:complexType name="ArrayOfint">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="int" type="xsd:int" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="ArrayOfint" nillable="true" type="tns:ArrayOfint" />
    <xsd:complexType name="ArrayOfKeyValueOfstringstring">
      <xsd:annotation>
        <xsd:appinfo>
          <IsDictionary xmlns="http://schemas.microsoft.com/2003/10/Serialization/">true</IsDictionary>
        </xsd:appinfo>
      </xsd:annotation>
      <xsd:sequence>
        <xsd:element minOccurs="0" maxOccurs="unbounded" name="KeyValueOfstringstring">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="Key" nillable="true" type="xsd:string" />
              <xsd:element name="Value" nillable="true" type="xsd:string" />
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  <xsd:element name="ArrayOfKeyValueOfstringstring" nillable="true" type="tns:ArrayOfKeyValueOfstringstring" />
</xsd:schema>

有没有关于如何使用wsdl2java处理内联模式的想法?

将其作为wsdl中的内联模式。

使用数据绑定
xmlbeans
似乎可以解决问题:
-d xmlbeans
您使用的是哪个Axis2版本?我在1.6.x版本中也面临类似的问题,而在1.5.x及以下版本中一切都正常。你能用旧版本试试吗?
在我看来,使用xmlbeans不是一种解决方案,它只是一种变通方法。

感谢Ratha的提示。当我仔细查看WSDL和您关于内联模式的建议时,我发现WSDL实际上已经使用了内联模式。因此,当调用wsdl2java时,它似乎没有像我一样正确处理内联模式。我使用的是Axis2 1.6.2。Axis2项目页面指出,ADB“决不是[…]打算成为像XMLBeans那样的全功能模式编译器。”()。所以我理解,您不能期望任何WSDL构造与ADB一起工作。
[java] Warning: No schemaLocation for import of http://schemas.microsoft.com/2003/10/Serialization/Arrays; compilation may fail