繁体   English   中英

尝试使用Java运行soap xml时出现错误

[英]Getting Error while trying to run soap xml using java

我正在使用maven-soapui-plugin 4.5.1,并且想要运行特定的测试步骤。 我正在使用以下代码:

WsdlProject abc = new WsdlProject(projectXMLPath);
WsdlTestSuite wsdlTestSuite = abc.getTestSuiteByName(testSuiteName);
WsdlTestCase wsdlTestCase = wsdlTestSuite.getTestCaseByName(testCaseName);
WsdlTestCaseRunner wsdlTestCaseRunner = new WsdlTestCaseRunner(wsdlTestCase,new StringToObjectMap());
WsdlTestStep wsdlTestStep = wsdlTestCase.getTestStepByName(testStepName);
wsdlTestCaseRunner.run(wsdlTestStep);

几件事-1.项目xml有2个测试套件,第一个测试套件具有步骤,第二个测试套件具有库功能。 在SoapUI中,它们的编码如下:

来自第一个测试套件的第一个测试步骤脚本(给出具有有效地址的请求)如下:

def proj= null
def workspace = testRunner.testCase.testSuite.project.getWorkspace();

proj= workspace.getProjectByName("Calling")

def testCase = proj.testSuites["Library"].testCases["Successful Calling Steps" ]
testRunner.testCase.setPropertyValue( "addressLine1", "xxxx" )
testRunner.testCase.setPropertyValue( "city", "xxxx" )
testRunner.testCase.setPropertyValue( "state", "xx" )

def testStep = testCase.getTestStepByName("Given a request with a valid address is made")

def runner = null
runner = testStep.run(testRunner, context)
  1. 来自库测试套件的第二个测试脚本具有实际的REST请求,Web服务和Web服务身份验证的端点。

  2. 如果我们在SOAPUI中执行第一个测试套件中的第一个测试步骤,它将在内部调用Library中的测试步骤来替换变量值并进行REST调用以获取响应。 这在SOAPUI中可以正常工作,但是当我们在JAVA中通过run方法调用第一步测试时,它以以下错误失败。

    线程“主”中的异常java.lang.NoClassDefFoundError:com.eviware.soapui.SoapUI.isJXBrowserDisabled(SoapUI.java:1060)处的com / jniwrapper / PlatformContext com.eviware.soapui.SoapUI.isJXBrowserDisabled(SoapUI.java:1038)处的com / jniwrapper / PlatformContext )上com.eviware.soapui.impl.wsdl.submit.filters.AbstractRequestFilter.filterRequest(AbstractRequestFilter.java:31)上com.eviware.soapui.impl.wsdl.submit.filters.HttpAuthenticationRequestFilter.filterAbstractHttpRequest(HttpAuthenticationRequestFilter.java:77) )的com.eviware.soapui.impl.wsdl.WsdlSubmit.run(WsdlSubmit.java:123)的com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest(HttpClientRequestTransport.java:184) com.eviware.soapui.impl.rest.RestRequest.submit(RestRequest.java:209)上的com.eviware.soapui.impl.wsdl.WsdlSubmit.submitRequest(WsdlSubmit.java:76)。 wsdl.teststeps.RestTestRequestStep.run(RestTestRequestStep.java:898)位于com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.runTestS com.eviware.soapui.impl.wsdl.support上的tep(AbstractTestCaseRunner.java:238).com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.runTestStep.call(AbstractTestCaseRunner.java:224) org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)上的org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)在MyClass.simpletest1(MyClass.groovy:109)在test.main(test.java:11)​​在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在com的java.lang.reflect.Method.invoke(Method.java:606)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) intellij.rt.execution.application.AppMain.main(AppMain.java:140)原因:java.lang.ClassNotFoundException:com.jniwrapper.Platf java.net处的java.net.URLClassLoader $ 1.run(URLClassLoader.java:366)上的ormContext java.net处的java.security.AccessController.doPrivileged(Native Method)处的java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)处的ormContext。 URLClassLoader.findClass(URLClassLoader.java:354)在java.lang.ClassLoader.loadClass(ClassLoader.java:425)在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308)在java.lang.ClassLoader.loadClass (ClassLoader.java:358)...还有22个

在这里可能需要错过什么才能解决该问题? 请帮忙。

SoapUI 4.5.1版已经过时了,所需的依赖项可能不再可用。

您应该使用较新的版本。 从4.5.2版开始,SoapUI由SmartBear购买,并且jar的组ID也进行了相应更新,从而在Maven仓库中产生了不同的位置: http : //smartbearsoftware.com/repository/maven2/com/smartbear/soapui / soapui-maven-plugin /

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM