2015-03-31 72 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仓库。