簡體   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