我想创建一个将执行以下操作的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文件,或者我使用的是错误的类?任何帮助,将不胜感激。
答案 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>
我希望这对你有所帮助,祝你好运。