我正在尝试使用 Netbeans 7.1.2 中来自 WSDL 的 New -> Web Service 创建一个 Web 服务。
我继续使用 XML spy 创建了一个 WSDL。这是我创建的基本 WSDL:
<wsdl:definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wsp="http://www.w3.org/ns/ws-policy"
xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://planningservice.ohs.com/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns="http://docs.oasis-open.org/wsn/t-1" xmlns:ns1="http://www.isotc211.org/2005/gco" xmlns:ns2="http://www.isotc211.org/2005/gmd" xmlns:ns3="http://www.isotc211.org/2005/gsr" xmlns:ns4="http://www.isotc211.org/2005/gss" xmlns:ns5="http://www.isotc211.org/2005/gts" xmlns:ns6="http://www.opengis.net/gml/3.2" xmlns:ns7="http://www.opengis.net/ows/1.1" xmlns:ns8="http://www.opengis.net/sps/2.0" xmlns:ns9="http://www.opengis.net/swe/2.0" xmlns:ns10="http://www.opengis.net/swes/2.0" xmlns:ns11="http://www.w3.org/2005/08/addressing" name="PlanningService" targetNamespace="http://planningservice.ohs.com/">
<wsdl:import namespace="http://www.opengis.net/sps/2.0" location="http://schemas.opengis.net/sps/2.0/spsGetFeasibility.xsd"/>
<wsdl:types>
<xsd:schema>
<xsd:import namespace="http://ps.ca"/>
</xsd:schema>
</wsdl:types>
<wsdl:message name="GetFeasibility">
<wsdl:part name="parameters" type="ns8:GetFeasibilityType"/>
</wsdl:message>
<wsdl:message name="GetFeasibilityResponse">
<wsdl:part name="parameters" type="ns8:GetFeasibilityResponseType"/>
</wsdl:message>
<wsdl:portType name="PlanningService">
<wsdl:operation name="GetFeasibility">
<wsdl:input message="tns:GetFeasibility" wsam:Action="http://planningservice.ohs.com/PlanningService/getFeasibility"/>
<wsdl:output message="tns:GetFeasibilityResponse" wsam:Action="http://planningservice.ohs.com/PlanningService/getFeasibilityResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="PlanningSerivcePortBinding" type="tns:PlanningService">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="GetFeasibility">
<soap:operation soapAction="' '"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="PlanningSerivce">
<wsdl:port name="PlanningService" binding="tns:PlanningSerivcePortBinding">
<soap:address location="http://localhost:8080/PlanningService/"/>
</wsdl:port>
</wsdl:service>
当我尝试使用上述内容时,“来自 WSDL 的新 Web 服务”向导显示“指定的 WSDL 文件中没有服务”。
如果我不指定 location 属性,如下所示:
<wsdl:service name="PlanningSerivce">
<wsdl:port name="PlanningService" binding="tns:PlanningSerivcePortBinding">
<soap:address/>
</wsdl:port>
</wsdl:service>
我没有那个通知,但是在创建 Web 服务期间,我收到一个错误,指出该属性丢失。
所以我的问题是我应该在 location 属性中添加什么来让 Netbeans 识别出定义了一个服务,因为它没有部署在任何地方!
谢谢大家!
~D