2012-09-26 59 views
1

我有權訪問遠程服務器,該服務器爲我提供了wsdl以迴應我的迴應。如何根據代碼或基於WSDL生成WSDD

我爲此準備了基於該wsdl的客戶端。

現在我想寫一個假的服務器(爲測試需要),我應該先開始?我應該執行哪些步驟?只有通過此WSDL實現,測試纔有意義。是否有可能用空方法生成某種服務?

在我的應用我使用Apache Axis的1.4

我的腳步,我是怎麼想的:

  1. 我已經有了:InterfacePortType類(其中,據我所知,代表遠程服務器) ,它是基於wsdl爲我的客戶端生成的。所以,我可以實現它,這將是爲MyService

    MyServer的工具InterfacePortType

  2. 然後以某種方式WSDD產生。我如何做到這一點?

我發現有類似的問題here沒有回答。

回答

0

骨架我找到了解決辦法,我產生WSDD使用axistools - Maven的插件,設置:服務器端參數真正 - 那麼它生成的WSDD文件。

這是Maven插件部分:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>axistools-maven-plugin</artifactId> 
     <executions> 
      <execution> 
       <id>wsdl2java-job</id> 
       <phase>generate-sources</phase> 
        <goals> 
         <goal>wsdl2java</goal> 
        </goals> 
        <configuration> 
         <sourceDirectory> 
          src/main/config/wsdl2java/myfolder 
         </sourceDirectory> 
         <outputDirectory> 
          ${generatedSourcesDirectory} 
         </outputDirectory> 
         <testCases>false</testCases> 
         <serverSide>true</serverSide> 
         <subPackageByFileName> false 
         </subPackageByFileName> 
         <packageSpace> my.api 
         </packageSpace> 
         </configuration> 
        </execution> 
    </plugin> 
0

您需要存根爲客戶端和骨架爲服務器端。
谷歌這更多信息:軸生成從WSDL

+0

這是一般的信息。我猜這些骨架是在客戶端連接到配置爲處理所有這些事情的web.xml中的AxisServlet時即時生成的(一次)。所以,問題是:如何通過WSDL生成WSDD。現在,我的服務能夠處理來自客戶端的請求並將響應發回,但客戶端無法處理它,因爲此xml響應與此客戶端所需的響應稍有不同,原因是服務器上的WSDD(部署描述符) 。 – ses

+0

它似乎與此主題有關:http://mail-archives.apache.org/mod_mbox/maven-users/201107.mbox/%[email protected]%5B10.1.125.126%5D%3E 他們在那裏使用axistools-maven-plugin來生成WSDD。將嘗試它。 – ses

+0

你不需要猜測任何東西 - 只需閱讀有關存根和骨架!您需要爲客戶端生成存根,併爲您的測試服務單獨生成框架。兩者都可以一起工作,也可以使用客戶端的「真實」服務。 – davidfrancis