从wsdl和xsd错误生成java

时间:2015-05-30 22:30:57

标签: java web-services xsd wsdl wsdl2java

我是wsdl / xsd的初学者,试图使用以下两个来生成Java类 文件

我从wsdl2java收到一些错误,包括wsdl文件没有定义服务,并且找不到xsd文件中的元素。

有谁知道问题可能是什么?

ChipDataJob.xsd

 @Override
public void onChannelOpened(Channel channel) {
    if (channel.getPath()
               .equals(Constants.COPY_FILE_VIA_CHANNEL_PATH)) {
        new SaveDataFromChannelTask(channel).execute();
    }
}

protected class SaveDataFromChannelTask extends AsyncTask<Void, Void, Void> {
    private final Channel channel;

    public SaveDataFromChannelTask(Channel channel) {
        this.channel = channel;
    }

    @Override
    protected Void doInBackground(Void... params) {
        Channel.GetInputStreamResult getInputStreamResult = channel.getInputStream(googleApiClient)
                                                                   .await();
        InputStream inputStream = getInputStreamResult.getInputStream();
        saveFileToDisk(inputStream);
        return null;
    }
}

DataChipper.wsdl

 <?xml version="1.0" encoding="ISO-8859-1" ?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="http://contmgmt.ecm.omega/WorkspaceManager/ChipDataJob"
    targetNamespace="http://contmgmt.ecm.omega/WorkspaceManager/ChipDataJob"
    elementFormDefault="qualified" attributeFormDefault="qualified">

    <xs:element name="dataChipperJob" type="tns:ChipJob"></xs:element>
    <xs:element name="dataChipperResponse" type="xs:long"></xs:element>
    <xs:element name="cancelResponse" type="xs:boolean"></xs:element>

    <xs:complexType name="ChipJob">
        <xs:sequence>
            <xs:element name="outputFilename" type="xs:string">
            </xs:element>
            <xs:element name="uuidDataObjects">
                <xs:simpleType>
                    <xs:list itemType="xs:string" />
                </xs:simpleType>
            </xs:element>
            <xs:element name="parameters" type="tns:ChipParameters"></xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ChipParameters">
        <xs:all>
            <xs:element name="chipStartTime" type="xs:double">
            </xs:element>
            <xs:element name="chipEndTime" type="xs:double">
            </xs:element>
            <xs:element name="fillDuration" type="xs:float">
            </xs:element>
            <xs:element name="GapFillMethod">
                <xs:simpleType final="restriction">
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="NONE" />
                        <xs:enumeration value="ZERO_FILL" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="StitchMarkerFormat">
                <xs:simpleType final="restriction">
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="NONE" />
                        <xs:enumeration value="FILL" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="SequenceMethod">
                <xs:simpleType final="restriction">
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="TIMECODE" />
                        <xs:enumeration value="MANUAL" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>

        </xs:all>
    </xs:complexType>


</xs:schema>

1 个答案:

答案 0 :(得分:1)

以下是我发现wsdl出错的原因。

<wsdl:message name="dataChipperJob">
    <wsdl:part name="job" element="tns:ChipJob" />
</wsdl:message>
<wsdl:message name="dataChipperResponse">
    <wsdl:part name="taskId" element="xs:long" />
</wsdl:message>
    <wsdl:message name="cancelResponse">
    <wsdl:part name="cancelSuccess" element="xs:boolean" />
</wsdl:message>

元素标签引用元素类型而不是元素本身 这些应改为

<wsdl:message name="dataChipperJob">
    <wsdl:part name="job" element="tns:dataChipperJob" />
</wsdl:message>
<wsdl:message name="dataChipperResponse">
    <wsdl:part name="taskId" element="tns:dataChipperResponse" />
</wsdl:message>
    <wsdl:message name="cancelResponse">
    <wsdl:part name="cancelSuccess" element="tns:cancelResponse" />
</wsdl:message>

wsdl也应该定义绑定和服务。