1

すでに作成したWSDL定義からJavaサービスクラスを生成しようとしています。私の現在の問題は、次のメッセージで失敗することです。それ以上の詳細はありません。

Unable to generate JAX-WS Source.

Reason:
java.lang.NullPointerException

(冗長性のためにyay〜)

Eclipse3.6.1をベースにしたMuleStudio1.3.0を使用しています。これらのクラスをMuleのコンポーネントとWSDLの両方から直接作成しようとしましたが、同じエラーが発生します。

わざとWSDLを混同したところ、検証エラーが正しくスローされ始めました。これは、ファイルを読み取り、適切に解析していることを意味します。次に何が起こるかについての手がかりはありません。

これをどのようにトラブルシューティングできますか?

以下は、参照用の私のwsdlファイルです。

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions 
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="http://tempuri.org/ListenerService/" 
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    name="ListenerService"
    targetNamespace="http://tempuri.org/ListenerService/">
    <!-- types -->
    <wsdl:types>
        <!-- Generic TransactionLog entities -->
        <xsd:schema targetNamespace="http://tempuri.org/ListenerService/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <xsd:simpleType name="LevelEnumeration">
                <xsd:restriction base="xsd:normalizedString">
                    <xsd:enumeration value="Debug" />
                    <xsd:enumeration value="Info" />
                    <xsd:enumeration value="Warning" />
                    <xsd:enumeration value="Error" />
                    <xsd:enumeration value="Fatal" />
                </xsd:restriction>
            </xsd:simpleType>

            <xsd:complexType name="LogEntry">
                <sequence>
                    <xsd:element name="CorrelationToken" type="xsd:normalizedString"/>
                    <xsd:element name="SystemId" type="xsd:normalizedString"/>
                    <xsd:element name="Level" type="tns:LevelEnumeration"/>
                    <xsd:element name="Description" type="xs:string" />
                    <xsd:element name="RecordData" type="xs:string" />
                    <xsd:element name="Timestamp" type="xs:dateTime" />
                </sequence>
            </xsd:complexType>

            <!-- Service Specific Types -->
            <xsd:simpleType name="GenericResponseStatusEnumeration">
                <xsd:restriction base="xsd:normalizedString">
                    <xsd:enumeration value="Success" />
                    <xsd:enumeration value="Error" />
                </xsd:restriction>
            </xsd:simpleType>
            <xsd:complexType name="ListenerServiceGenericResponse">
                <sequence>
                    <xsd:element name="Status" type="tns:GenericResponseStatusEnumeration" />
                    <xsd:element name="Detail" type="xsd:string" minOccurs="0" maxOccurs="1" />
                </sequence>
            </xsd:complexType>

            <xsd:element name="LogEntry" type="tns:LogEntry" />
            <xsd:element name="ServiceResponse" type="tns:ListenerServiceGenericResponse" />
        </xsd:schema>
    </wsdl:types>

    <!-- service message types -->
    <wsdl:message name="SubmitLogRequest">
        <wsdl:part name="LogEntry" type="tns:LogEntry" />
    </wsdl:message>
    <wsdl:message name="SubmitLogResponse">
        <wsdl:part name="Response" type="tns:ListenerServiceGenericResponse" />
    </wsdl:message>

    <!-- service messages -->
    <wsdl:portType name="ListenerService">
        <wsdl:operation name="SubmitLog">
            <wsdl:input message="tns:SubmitLogRequest" />

            <!-- TODO: Remove this to make it a one-way operation -->
            <wsdl:output message="tns:SubmitLogResponse" />
        </wsdl:operation>
    </wsdl:portType>

    <!-- service bindings -->
    <wsdl:binding name="ListenerServiceSOAP">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
        <wsdl:operation name="SubmitLog">
            <soap:operation soapAction="http://tempuri.org/ListenerService/SubmitLog" />
            <wsdl:input>
                <soap:body use="literal" />
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" />
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>

    <wsdl:service name="ListenerService">
        <wsdl:port binding="tns:ListenerServiceSOAP" name="ListenerServiceSOAP">
            <soap:address location="http://tempuri.org" />
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>
4

1 に答える 1

0

コマンドラインからWsdlでjaxwswsimportコマンドを直接呼び出してみます。今ではJDKに付属していると思うので、ダウンロードする必要はありません。
wsimportの新しいバージョンで修正されたバグに遭遇した可能性があります。

于 2012-07-10T08:38:17.147 に答える