2017-03-15 64 views
0

我正在使用Netbeans創建在Glashfish上部署的Web客戶端和Web服務(以調試模式)。Netbeans調試Web服務和Web客戶端

我把一些斷點在Web服務,但是當我啓動web客戶端(調試),並觸發調用Web服務的方法,它從來沒有在我設置的斷點停止。

我確實得到了一個正確的SOAP響應,所以我知道Web服務的代碼被執行了。 啓動Web客戶端時有沒有辦法調試Web服務?

現在我使用的Web服務的主類,模擬客戶端或方法不使用複雜的類型,我可以從NetBeans中使用「測試Web服務」。

回答

1

的幾點思考:測試

  • 獲取SOAP-UI。它比任何客戶都好得多,你可以生成 。您也可以在服務之間使用它。

一旦SOAP-UI安裝在調試模式下啓動的GlassFish。部署您的Web服務。創建一個新的SOAP-UI項目並將其指向您部署的Web服務的WSDL文件。

警告:SOAP-UI AINT漂亮,但它是相當不錯的。

一旦導入的WSDL打開SOAP節點項目,直到你看到Web服務的操作。

您應該看到這樣的事情:

SOAP UI

展開行動,並在請求中的缺失部分填充。缺少的值將由a?在XML請求,就應該是這個樣子的初始請求:

<ecol:accountTotalDue> 
      <!--Optional:--> 
      <acc:AccountKeyInfo> 
       <!--Optional:--> 
       <acc:Client_Ref>12834756183754</acc:Client_Ref> 
       <!--Optional:--> 
       <acc:Debt_ID>?</acc:Debt_ID> 
      </acc:AccountKeyInfo> 
      <!--Optional:--> 
      <acc:Total_Due>10000000.00</acc:Total_Due> 
     </ecol:accountTotalDue> 

注意:您可以腳本他們太例如我的網絡服務要求:

<ecol:accountTotalDue> 
      <!--Optional:--> 
      <acc:AccountKeyInfo> 
       <!--Optional:--> 
       <acc:Client_Ref>?</acc:Client_Ref> 
       <!--Optional:--> 
       <acc:Debt_ID>?</acc:Debt_ID> 
      </acc:AccountKeyInfo> 
      <!--Optional:--> 
      <acc:Total_Due>?</acc:Total_Due> 
     </ecol:accountTotalDue> 

您可以硬這樣的代碼它們在一個特殊的頭段一GUUID和消息的日期時間,所以我做到以下幾點:

<irix:MsgReqHdr> 
     <irix:MsgGUID>${=java.util.UUID.randomUUID()}</irix:MsgGUID> 
      <!--Optional:--> 
      <irix:MsgDateTime>${=javax.xml.datatype.DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar.getInstance())}</irix:MsgDateTime> 
</irix:MsgReqHdr> 

您可以設置不同的請求,以測試不同的場景。如果您正在開展嚴肅的Web服務開發,那真的是必須的。它也做REST。

這對我來說通常比​​其他任何東西都好。我已經用JBoss,Glassfish,Karaf,Fuse和其他服務器完成了這個工作,所以它可以工作。

+0

感謝您的輸入。這似乎是一個可靠的選擇!但是,我所要求的是在大學實驗室的背景下,我們需要使用NetBeans。 – JulioQc

+0

@JulioQc你可以發佈一些你如何啓動Glassfish的截圖嗎?請問您的講師是否有可能使用SOAP-ui,因爲它在行業中的使用遠遠多於測試客戶端,因此與您的職業生涯相關性更大。 – Namphibian