0

我在 Altora XMLSpay 中创建了 WSDL 文件,我想在 Netbeans 中创建 Web 服务(来自 WSDL 的 Web 服务...),但是在添加 .wsdl 文件时,Netbeans 总是写“指定的 WSDL 文件中没有服务”。你能帮助我吗?我的 wsdl 文档网有什么问题?

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://new.webservice.namespace" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://new.webservice.namespace">
    <wsdl:types>
        <xs:schema targetNamespace="http://new.webservice.namespace" elementFormDefault="qualified"/>
    </wsdl:types>
    <wsdl:message name="NewMessageRequest">
        <wsdl:part name="parameter" type="xs:string"/>
    </wsdl:message>
    <wsdl:message name="NewMessageResponse">
        <wsdl:part name="parameter" type="xs:string"/>
    </wsdl:message>
    <wsdl:portType name="GetDbStatus">
        <wsdl:operation name="OpenDB">
            <wsdl:input message="tns:NewMessageRequest"/>
            <wsdl:output message="tns:NewMessageResponse"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="GetDbStatusBinding" type="tns:GetDbStatus">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="OpenDB">
            <soap:operation soapAction="urn:#NewOperation"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="Test_Wsdl">
        <wsdl:port name="GetDbstatusPort" binding="tns:GetDbStatusBinding">
            <soap:address location="http://localhost:8080/mpo_getdbstatus/GetDbStatus"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>
4

2 回答 2

0

我认为你的问题在你的 wsdl

GetDbStatusBinding 消息“NewMessageRequest”的一部分引用了架构类型而不是架构元素。消息“NewMessageResponse”的部分引用了模式类型而不是模式元素。

于 2019-08-06T09:57:40.673 回答
0

它帮助了我,但我有另一个错误:
[错误] 模式描述符 { http://www.w3.org/2001/XMLSchema } 消息部分“messageReq”中的字符串未定义,无法绑定到 Java。也许模式描述符 { http://www.w3.org/2001/XMLSchema } 字符串未在 WSDL 中导入/包含的模式中定义。您可以添加此类导入/包含或运行 wsimport 并使用 -b 开关提供架构位置。文件第 8 行:/C:/.../.../mpo_getdbstatus/src/conf/xml-resources/web-services/NewWebServiceFromWSDL/wsdl/mpo_getdbstatus_wsdl.wsdl

C:......\mpo_getdbstatus\nbproject\jaxws-build.xml:31:启动 wsimport 时出错:null

   <wsimport sourcedestdir="${build.generated.dir}/jax-wsCache/service/NewWebServiceFromWSDL" destdir="${build.generated.dir}/jax-wsCache/service/NewWebServiceFromWSDL" wsdl="${basedir}/${conf-dir}xml-resources/web-services/NewWebServiceFromWSDL/wsdl/mpo_getdbstatus_wsdl.wsdl" catalog="catalog.xml" encoding="${source.encoding}" extension="true" verbose="true" fork="false" xnocompile="true" xendorsed="true">
            <depends file="${basedir}/${conf-dir}xml-resources/web-services/NewWebServiceFromWSDL/wsdl/mpo_getdbstatus_wsdl.wsdl"/>
            <produces dir="${build.generated.dir}/jax-wsCache/service/NewWebServiceFromWSDL"/>
        </wsimport>
于 2019-08-06T12:54:46.340 回答