2015-03-31 69 views
0

我試圖直接在我的單元測試中調用SOAPUI類,以便我可以直接提供鏈接到WSDL並調用單個操作。使用SOAPUI編譯錯誤直接在單元測試代碼中的類

這樣做背後是,我打算建立單獨的測試用例和使用這些類套件(無需使用實際UI)

我指的例子on this pageSOAPUI網站上的原因。我下載了了SoapUI Maven插件所需要的所有的依賴上市here

固定項目構建路徑以下代碼後:

import com.eviware.soapui.impl.WsdlInterfaceFactory; 
import com.eviware.soapui.impl.wsdl.WsdlInterface; 
import com.eviware.soapui.impl.wsdl.WsdlOperation; 
import com.eviware.soapui.impl.wsdl.WsdlProject; 
import com.eviware.soapui.impl.wsdl.WsdlRequest; 
import com.eviware.soapui.impl.wsdl.WsdlSubmit; 
import com.eviware.soapui.impl.wsdl.WsdlSubmitContext; 
import com.eviware.soapui.model.iface.Response; 

public class someClassName 
{ 
    // Create new wsdl project 
    WsdlProject wsdlProject = new WsdlProject(); 

    // Import webservice wsdl 
    WsdlInterface iface = WsdlInterfaceFactory.importWsdl(wsdlProject , "http://localhost:8080/MyWebService/MyWebService?wsdl", true)[0]; 

    // Get desired operation 
    WsdlOperation someOp = (WsdlOperation) iface.getOperationByName("someOpName"); 

    // Create a new empty request for that operation 
    WsdlRequest someOpRequest = someOp.addNewRequest("My request"); 

    // Generate the request content from the schema 
    someOpRequest.setRequestContent(someOp.createRequest(true)); 

    // Submit the request 
    WsdlSubmit submit = (WsdlSubmit) someOpRequest.submit(new WsdlSubmitContext(someOpRequest), false); 

    // Wait for the response 
    Response response = submit.getResponse(); 

    // Print the response 
    String content = response.getContentAsString(); 
    System.out.println(content); 
} 

我收到編譯錯誤。

Syntax error on token "setRequestContent", Identifier expected after this token . 

有沒有人試圖運行這個例子?如果有人能夠指出我對這個主題有更清晰詳細的在線教程/博客,那將是非常棒的。

+0

你能分享一下你的代碼嗎?快速解決方法是檢查是否已經用一些運行的api url替換了API URL「http://www.mycorp.com/somewsdl.wsdl」,因爲這是示例url。 – Riky 2015-03-31 20:55:57

+0

@Riky請參閱更新後的帖子。謝謝 !! – Chiseled 2015-03-31 21:22:43

+0

你說過:「我已經下載了SoapUI maven插件所需的所有依賴項」。你知道每個人都有自己的依賴關係,對嗎? – SiKing 2015-03-31 21:31:11

回答

0

我得到了這個工作,我的項目在日食中mavenizing,並添加「soapui-maven-plugin」依賴關係我的pom.xml。爲了得到這個工作,我在我的項目的pom.xml中包含了下面的倉庫。

我爲那些誰可能會遇到同樣的問題,發佈這樣的:

 <repositories> 
     <repository> 
      <id>maven2</id> 
      <url>https://www.soapui.org/repository/maven2/</url> 
     </repository> 
     <repository> 
      <id>activation</id> 
      <url>https://www.soapui.org/repository/activation/jars</url> 
     </repository> 
     <repository> 
      <id>xmlbeans</id> 
      <url>https://www.soapui.org/repository/xmlbeans/jars</url> 
     </repository> 
     <repository> 
      <id>bouncycastle</id> 
      <url>https://www.soapui.org/repository/bouncycastle/jars</url> 
     </repository> 
     <repository> 
      <id>javamail</id> 
      <url>https://www.soapui.org/repository/javamail/jars</url> 
     </repository> 
    </repositories> 

我是新來的Maven和從我在論壇上看過,好像包括在POM多個資源庫是一個壞實踐。

我做了所需的代碼工作。所有的Maven大師都可以自由地改進這個答案。

我也遇到了this useful link,它告訴我們爲什麼缺少「soapui-maven-plugin」的依賴關係,也就是說,如果你使用的是中央Maven倉庫。