8

我想创建一个 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 文件,或者是我使用的错误类?任何帮助,将不胜感激。

4

2 回答 2

7

最后我能够解决这个问题。我正在创建一个 SoapUI 项目,将其保存并通过代码发送请求。请参阅此处的链接以获取完整的详细信息。谢谢。

于 2013-06-16T11:02:50.937 回答
6

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

这是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>

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

于 2013-05-27T12:35:15.767 回答