我想创建一个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));
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误 - '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文件,或者我使用的是错误的类?任何帮助,将不胜感激.
我的目的是使用给定的wsdl URL创建一个Soap UI项目,保存它并通过Java方法发送所有请求.org.apache.http.client.ClientProtocolException..... Caused by: org.apache.http.ProtocolException: Content-Length header already present当我尝试通过设置操作的用户名和密码来提交请求时,我收到错误.找到我的Java方法来发送请求.
public void runSoap() throws Exception
{
String projectFile = "SoapUIProjects/TestProjectA-soapui-project.xml";
SoapUI.setSoapUICore(new StandaloneSoapUICore(true));
WsdlProject project = new WsdlProject(projectFile);
int c = project.getInterfaceCount();
System.out.println("The interface count ="+c);
for(int i=0;i<c;i++)
{
WsdlInterface wsdl = (WsdlInterface) project.getInterfaceAt(i);
String soapVersion = wsdl.getSoapVersion().toString();
int opc = wsdl.getOperationCount();
String result="";
for(int j=0;j<opc;j++)
{
WsdlOperation op = wsdl.getOperationAt(j);
String opName = op.getName();
System.out.println("OPERATION:"+opName);
WsdlRequest req = op.getRequestByName("Req_"+soapVersion+"_"+opName);
//Assigning correct u/p to an operation: Generate
if(opName.equals("Generate"))
{ …Run Code Online (Sandbox Code Playgroud)