2011-10-24 151 views
1

我已經生成這個WSDL文件...如何測試如何測試看到一個Web服務/ WSDL

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. --> 
<definitions targetNamespace="http://math/" name="MathServicesService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://math/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> 
    <types> 
    <xsd:schema> 
     <xsd:import namespace="http://math/" schemaLocation="MathServicesService_schema1.xsd"/> 
    </xsd:schema> 
    </types> 
    <message name="addTwoInts"> 
    <part name="parameters" element="tns:addTwoInts"/> 
    </message> 
    <message name="addTwoIntsResponse"> 
    <part name="parameters" element="tns:addTwoIntsResponse"/> 
    </message> 
    <message name="multiplyTwoFloats"> 
    <part name="parameters" element="tns:multiplyTwoFloats"/> 
    </message> 
    <message name="multiplyTwoFloatsResponse"> 
    <part name="parameters" element="tns:multiplyTwoFloatsResponse"/> 
    </message> 
    <portType name="MathServices"> 
    <operation name="addTwoInts"> 
     <input message="tns:addTwoInts"/> 
     <output message="tns:addTwoIntsResponse"/> 
    </operation> 
    <operation name="multiplyTwoFloats"> 
     <input message="tns:multiplyTwoFloats"/> 
     <output message="tns:multiplyTwoFloatsResponse"/> 
    </operation> 
    </portType> 
    <binding name="MathServicesPortBinding" type="tns:MathServices"> 
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> 
    <operation name="addTwoInts"> 
     <soap:operation soapAction=""/> 
     <input> 
     <soap:body use="literal"/> 
     </input> 
     <output> 
     <soap:body use="literal"/> 
     </output> 
    </operation> 
    <operation name="multiplyTwoFloats"> 
     <soap:operation soapAction=""/> 
     <input> 
     <soap:body use="literal"/> 
     </input> 
     <output> 
     <soap:body use="literal"/> 
     </output> 
    </operation> 
    </binding> 
    <service name="MathServicesService"> 
    <port name="MathServicesPort" binding="tns:MathServicesPortBinding"> 
     <soap:address location="REPLACE_WITH_ACTUAL_URL"/> 
    </port> 
    </service> 
</definitions> 

從這個類...

package math; 

import javax.jws.WebService; 

@WebService 
public class MathServices { 

    public int addTwoInts(int int1, int int2){ 
     return int1+int2; 
    } 

    public float multiplyTwoFloats(float float1, float float2){ 
     return float1 * float2; 
    } 
} 

如果Web服務是工作正確使用WSDL?我不明白功能(int1+int2float1*float2)如何轉換爲XML。我在WSDL中看到的所有內容都轉換爲方法名稱和參數名稱。我看不出數學在哪裏繼續。 :/

也就是說,使用webservice時參數來自哪裏?你甚至如何使用web服務?我可以通過我的瀏覽器使用它嗎?

+0

你不會在WSDL中看到數學,因爲沒有。這只是對所有函數,參數和返回類型的正式聲明。它仍然是您的後端數學運算的Java代碼。 – stivlo

+0

那麼參數如何傳遞給代碼呢?顯然你不是直接調用方法和傳遞參數;他們來自哪裏? –

+0

WSDL將會告訴我之前說過的所有內容,也會說明具體的綁定,例如HTTP,URL和方法被調用以及參數傳遞的位置。我沒有試圖回答你的問題,因爲你說你在那裏尋找代碼,所以這只是關於WSDL的一個說明。 – stivlo

回答

3

對於肥皂你可以使用SoapUI。見http://www.soapui.org/

+0

我下載了SoapUI,但是我不太確定如何使用它.. –

+3

有很多資源,例如http://www.soapui.org/Getting-Started/functional-testing.html。 – 2011-10-24 05:49:33

+0

我應該爲服務端點使用什麼?那是我困惑的地方。 –