The company (ICW) I am working for is developing test software for its products, based on SoapUI Pro. I am going to evaluate the possibility of re usage of SoapUI projects for load testing using LoadUI. The projects are constructed as a sequence of groovy / Soap requests (up to 60 steps). The groovy stuff is using camel and mina libraries. There are important dependencies between JRE, groovy, camel and mina versions. The soapui suites are running as expected, unfortunately LoadUI is not possible to run the same suites using the SoapUI runner. The error pattern "Ljavax/xml/bind/JAXBContext" is typical for version mismatches already mentioned.
Thrown Error Message:
09:53:18,786 INFO [DefaultSoapUICore] Reloading updated settings file
09:53:18,789 INFO [DefaultSoapUICore] initialized soapui-settings from [/home/i000379/soapui-settings.xml]
09:53:35,540 DEBUG [ModelItemImpl] Triggering action 'SAMPLE' on ModelItem 'ComponentItemImpl[label=SoapUI Runner 1]'
09:53:36,106 DEBUG [PropertyOverrider] 1setting property:
09:53:36,142 ERROR [SoapUI] An error occured [Ljavax/xml/bind/JAXBContext;], see error log for details
09:53:36,145 ERROR [err] java.lang.NoClassDefFoundError: Ljavax/xml/bind/JAXBContext;
09:53:36,147 ERROR [err] at java.lang.Class.getDeclaredFields0(Native Method)
09:53:36,149 ERROR [err] at java.lang.Class.privateGetDeclaredFields(Unknown Source)
09:53:36,149 ERROR [err] at java.lang.Class.getDeclaredFields(Unknown Source)
09:53:36,150 ERROR [err] at org.codehaus.groovy.reflection.CachedClass$1$1.run(CachedClass.java:48)
09:53:36,152 ERROR [err] at java.security.AccessController.doPrivileged(Native Method)
09:53:36,152 ERROR [err] at org.codehaus.groovy.reflection.CachedClass$1.initValue(CachedClass.java:45)
09:53:36,152 ERROR [err] at org.codehaus.groovy.reflection.CachedClass$1.initValue(CachedClass.java:43)
09:53:36,153 ERROR [err] at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46)
09:53:36,153 ERROR [err] at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33)
09:53:36,154 ERROR [err] at org.codehaus.groovy.reflection.CachedClass.getFields(CachedClass.java:254)
09:53:36,154 ERROR [err] at groovy.lang.MetaClassImpl.addFields(MetaClassImpl.java:2105)
09:53:36,156 ERROR [err] at groovy.lang.MetaClassImpl.inheritFields(MetaClassImpl.java:2100)
09:53:36,156 ERROR [err] at groovy.lang.MetaClassImpl.setupProperties(MetaClassImpl.java:1990)
09:53:36,156 ERROR [err] at groovy.lang.MetaClassImpl.addProperties(MetaClassImpl.java:2947)
09:53:36,157 ERROR [err] at groovy.lang.MetaClassImpl.initialize(MetaClassImpl.java:2918)
09:53:36,171 ERROR [err] at org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:166)
09:53:36,172 ERROR [err] at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:182)
09:53:36,175 ERROR [err] at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getMetaClass(MetaClassRegistryImpl.java:242)
09:53:36,175 ERROR [err] at org.codehaus.groovy.runtime.InvokerHelper.getMetaClass(InvokerHelper.java:751)
09:53:36,176 ERROR [err] at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallConstructorSite(CallSiteArray.java:71)
09:53:36,176 ERROR [err] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:54)
09:53:36,179 ERROR [err] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
09:53:36,179 ERROR [err] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:186)
09:53:36,179 ERROR [err] at com.icw.prg.XXX.soapui.Sender.instantiateProducer(Sender.groovy:86)
09:53:36,179 ERROR [err] at com.icw.prg.XXX.soapui.Sender.createProducer(Sender.groovy:62)
09:53:36,180 ERROR [err] at com.icw.prg.XXX.soapui.Sender.sendMessage(Sender.groovy:28)
09:53:36,182 ERROR [err] at com.icw.prg.XXX.soapui.Sender$sendMessage.call(Unknown Source)
09:53:36,183 ERROR [err] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
09:53:36,183 ERROR [err] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
09:53:36,183 ERROR [err] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
09:53:36,183 ERROR [err] at Script1.run(Script1.groovy:46)
09:53:36,183 ERROR [err] at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:96)
09:53:36,183 ERROR [err] at com.eviware.soapui.support.scripting.groovy.SoapUIProGroovyScriptEngineFactory$SoapUIProGroovyScriptEngine.run(SourceFile:89)
09:53:36,183 ERROR [err] at com.eviware.soapui.impl.wsdl.teststeps.WsdlGroovyScriptTestStep.run(WsdlGroovyScriptTestStep.java:149)
09:53:36,183 ERROR [err] at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.runTestStep(AbstractTestCaseRunner.java:239)
09:53:36,183 ERROR [err] at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner.runCurrentTestStep(WsdlTestCaseRunner.java:48)
09:53:36,184 ERROR [err] at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.internalRun(AbstractTestCaseRunner.java:148)
09:53:36,189 ERROR [err] at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.internalRun(AbstractTestCaseRunner.java:43)
09:53:36,189 ERROR [err] at com.eviware.soapui.impl.wsdl.support.AbstractTestRunner.run(AbstractTestRunner.java:135)
09:53:36,191 ERROR [err] at com.eviware.loadui.components.soapui.SoapUISamplerComponent$SoapUITestCaseRunner.run(SoapUISamplerComponent.java:735)
09:53:36,191 ERROR [err] at com.eviware.loadui.components.soapui.SoapUISamplerComponent.sample(SoapUISamplerComponent.java:576)
09:53:36,191 ERROR [err] at com.eviware.loadui.impl.component.categories.RunnerBase.doSample(RunnerBase.java:493)
09:53:36,192 ERROR [err] at com.eviware.loadui.impl.component.categories.RunnerBase.access$700(RunnerBase.java:59)
09:53:36,192 ERROR [err] at com.eviware.loadui.impl.component.categories.RunnerBase$Worker.run(RunnerBase.java:782)
09:53:36,192 ERROR [err] at com.eviware.loadui.util.dispatch.CustomThreadPoolExecutor$Worker.run(CustomThreadPoolExecutor.java:197)
09:53:36,192 ERROR [err] at java.lang.Thread.run(Unknown Source)
09:53:36,192 ERROR [err] Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBContext
09:53:36,193 ERROR [err] at java.net.URLClassLoader$1.run(Unknown Source)
09:53:36,193 ERROR [err] at java.net.URLClassLoader$1.run(Unknown Source)
09:53:36,199 ERROR [err] at java.security.AccessController.doPrivileged(Native Method)
09:53:36,201 ERROR [err] at java.net.URLClassLoader.findClass(Unknown Source)
09:53:36,202 ERROR [err] at java.lang.ClassLoader.loadClass(Unknown Source)
09:53:36,218 ERROR [err] at java.lang.ClassLoader.loadClass(Unknown Source)
09:53:36,222 ERROR [err]
I am using SoapUI-4.6.4 (using groovy groovy-all-2.1.7.jar )
and LoadUI-2.6.8 (using groovy groovy-all-1.8.5.jar in their OSGI component bundles)
I analyzed the problem: the following code sections provokes error:
def instantiateProducer(String host, int port) {
final encoding = 'UTF-8'
def codec = new HL7MLLPCodec()
codec.setCharset(encoding)
def config = new MinaConfiguration(
host : host,
port : port,
protocol : 'tcp',
sync : true,
codec : codec,
encoding : encoding,
timeout : 30000,
lazySessionCreation : true
)
log.info("MessageProducerFactory: Generation of Camel Mina Endpoint")
MinaEndpoint minaEndpoint = new MinaComponent(new DefaultCamelContext()).createEndpoint(config) <============ HERE
log.info("MessageProducerFactory: Generation of Camel Producer")
producer = minaEndpoint.createProducer()
}
camel-core-2.9.2.jar
camel-hl7-2.7.1.jar
camel-mina-2.7.1.jar
mina-filter-ssl-1.1.7.jar
mina-core-1.1.7.jar
JRE 7.0
Hopefully it is possible to synchronize groovy versions (LoadUI: groovy-all-1.8.5.jar => groovy groovy-all-2.1.7.jar), otherwise reusage of SoapUI projects is not possible for my company.