如何创建SOAP UI项目并在Java中运行请求

时间:2013-05-27 12:24:41

标签: java soapui

我想创建一个将执行以下操作的Java类 1.使用wsdl加载/创建SOAPUI项目 2.对该wsdl中的操作运行请求。

这是我的SoapJavaTest.java文件(尽管这还不完整,它只是在SOAP UI中注册一个项目并打印其中包含的操作)

public class SoapJavaTest{
    public static void main(String args[]) throws Exception{
        String projectFile ="SoapUIJavaTest\\SoapUIProjects\\soapui-project1.xml";
        WsdlProject project = new WsdlProject (projectFile);
        //WsdlProject project = new WsdlProject();
        WsdlInterface[] wsdls = WsdlImporter.importWsdl(project, "http://metalmaker.net/metalmaker.asmx?WSDL");
        WsdlInterface wsdl = wsdls[0];
        for (Operation operation : wsdl.getOperationList()){
            WsdlOperation op = (WsdlOperation) operation;
            System.out.println("OP:"+op.getName());System.out.println(op.createRequest(true));
            System.out.println("Response:");System.out.println(op.createResponse(true));
            }
        }

    }

我收到以下错误 - 'NoSuchMethodError:org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(Ljava / lang / ClassLoader; Ljava / lang / String;)Lorg / apache / xmlbeans / SchemaTypeSystem;'。

我已经包含了以下jar文件 1. commons-cli-1.2
2. commons-httpclient-3.1
3. log4j
4. soapui-3.6-beta2
5. soapui-xmlbeans-2.0.2
6. wsdl-xmlbeans-1.1
7. xbean-1.0.3
8. xmlbeans-xmlpublic-2.2.0
9. XmlSchema-1.0.3

我错过了什么jar文件,或者我使用的是错误的类?任何帮助,将不胜感激。

2 个答案:

答案 0 :(得分:7)

最后我能够解决这个问题。我正在创建一个SoapUI项目,保存它并通过代码发送所有请求。有关完整的详细信息,请参阅此处的link。感谢。

答案 1 :(得分:6)

您是否考虑过使用maven-soapui-pro-plugin而不是以编程方式调用SoapUI来运行测试?

以下是对Apache Maven的介绍,如果您需要了解它:)

现在,假设你有一个maven项目,请编辑你的pom.xml并添加类似于下面的个人资料。然后你可以用-Dsoapuitests运行maven,你的SoapUI测试套件就会运行。

    <profile>
        <id>soapuitests</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>eviware</groupId>
                    <artifactId>maven-soapui-pro-plugin</artifactId>
                    <version>4.5.1</version>
                    <executions>
                        <execution>
                            <id>soapuitests</id>
                            <phase>test</phase>
                            <goals>
                                <goal>test</goal>
                            </goals>
                            <configuration>
                                <endpoint>http://myserver/myendpoint</endpoint>
                                <projectFile>
                                    ${project.basedir}/src/test/resources/my-soapui-project.xml
                                </projectFile>
                                <projectProperties>
                                </projectProperties>
                                <outputFolder>${project.build.directory}\soapui-logs</outputFolder>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>

我希望这对你有所帮助,祝你好运。