直接在单元测试代码中使用SOAPUI 类编译错误

Compilation errors using SOAPUI Classes directly in the unit test code

我试图在我的单元测试中直接调用 SOAPUI 类,这样我就可以直接将 link 提供给 WSDL 并调用单独的操作.

这样做的原因是,我打算使用这些 类 创建单独的测试用例和套件(不必使用实际的 UI)

我指的是例子on this page on the SOAPUI website. I have downloaded all dependencies required for SoapUI maven plugin listed 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 . 

有没有人试过 运行 这个例子?如果有人可以向我指出有关此主题的更清晰、更详细的在线 tutorial/blog,那就太好了。

我在 eclipse 中对我的项目进行了 mavenizing,并在我的 pom.xml 中添加了 "soapui-maven-plugin" 依赖项。为了使这项工作正常进行,我在项目的 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 中包含多个存储库是一种不好的做法。

我做了使代码正常工作所需的工作。所有专家都可以随时改进这个答案。

我也遇到了 this useful link ,它阐明了为什么 "soapui-maven-plugin" 缺少依赖项,也就是说,如果您使用的是中央 Maven 存储库。