Hi Claude,
I have a perf issue when calling the smooks.filterSource() method.
This is my code:
StringSink sink = new StringSink();
ExecutionContext executionContext = smooks.createExecutionContext();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
XStream xstream = new XStream(new DomDriver());
xstream.autodetectAnnotations(true);
xstream.toXML(ediResponse1G, byteArrayOutputStream);
Source source = new ByteSource(byteArrayOutputStream.toByteArray());
smooks.filterSource(executionContext, source, sink);
If I run only a request, the conversion from java object (ediResponse1G) to edifact works fine…but if I run 10 parallel threads I got this error:
at com.travelport.car.at.cdcp.model.edifact.EdifactDataTranformer.edifactToString(EdifactDataTranformer.java:135)
at com.travelport.car.at.cdcp.availrule.service.avail.oneg.impl.CarCdcpAdapterCPLProviderAvailService1GImpl.process(CarCdcpAdapterCPLProviderAvailService1GImpl.java:188)
at com.travelport.car.at.cdcp.availrule.service.resource.oneg.avail.CarCPLAdapterAvailResource1GImpl.onCall(CarCPLAdapterAvailResource1GImpl.java:86)
at jdk.internal.reflect.GeneratedMethodAccessor155.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: org.smooks.api.SmooksException: Failing edifact xml (with DomDriver over ByteSource and conversion time millis: 2): null
at com.travelport.car.at.cdcp.model.edifact.availrule.oneg.marshaller.CarCdcpEdifactMarshaller1G.toEDI(CarCdcpEdifactMarshaller1G.java:167)
at com.travelport.car.at.cdcp.model.edifact.EdifactDataTranformer.edifactToString(EdifactDataTranformer.java:132)
... 51 more
Caused by: org.smooks.api.SmooksException: Failed to filter source
at org.smooks.engine.delivery.sax.ng.SaxNgFilter.doFilter(SaxNgFilter.java:123)
at org.smooks.engine.delivery.sax.ng.SaxNgFilter.doFilter(SaxNgFilter.java:97)
at org.smooks.Smooks._filter(Smooks.java:570)
at org.smooks.Smooks.filterSource(Smooks.java:512)
at com.travelport.car.at.cdcp.model.edifact.availrule.oneg.marshaller.CarCdcpEdifactMarshaller1G.toEDI(CarCdcpEdifactMarshaller1G.java:154)
... 52 more
Caused by: org.smooks.api.SmooksException: Error while processing start event
Error Context
---------------------------------------------------------------------------------------------------------------------------------------
Event => /EDIFACTCarAvailRuleResponse1G/group3/pli/geographicalDetails
Selector => pli/geographicalDetails
Content handler => org.smooks.cartridges.javabean.BeanInstanceCreator
---------------------------------------------------------------------------------------------------------------------------------------
at org.smooks.engine.delivery.interceptor.ExceptionInterceptor.processVisitorException(ExceptionInterceptor.java:148)
at org.smooks.engine.delivery.interceptor.ExceptionInterceptor.intercept(ExceptionInterceptor.java:127)
at org.smooks.engine.delivery.interceptor.ExceptionInterceptor.visitBefore(ExceptionInterceptor.java:101)
at org.smooks.engine.delivery.interceptor.AbstractInterceptorVisitor$VisitBeforeInvocation.invoke(AbstractInterceptorVisitor.java:178)
at org.smooks.engine.delivery.interceptor.AbstractInterceptorVisitor$VisitBeforeInvocation.invoke(AbstractInterceptorVisitor.java:175)
at org.smooks.engine.delivery.interceptor.AbstractInterceptorVisitor.intercept(AbstractInterceptorVisitor.java:122)
at org.smooks.engine.delivery.interceptor.StaticProxyInterceptor.visitBefore(StaticProxyInterceptor.java:125)
at org.smooks.engine.delivery.sax.ng.SaxNgContentHandler.visitBefore(SaxNgContentHandler.java:284)
at org.smooks.engine.delivery.sax.ng.SaxNgContentHandler.startElement(SaxNgContentHandler.java:186)
at org.smooks.engine.delivery.SmooksContentHandler.startElement(SmooksContentHandler.java:110)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.smooks.engine.delivery.sax.ng.SaxNgParser.parse(SaxNgParser.java:87)
at org.smooks.engine.delivery.sax.ng.SaxNgFilter.doFilter(SaxNgFilter.java:111)
... 56 more
Caused by: java.lang.NoClassDefFoundError: org/mvel2/compiler/Accessor
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:874)
at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer$ContextClassLoader.defineClass(ASMAccessorOptimizer.java:2321)
at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer.loadClass(ASMAccessorOptimizer.java:2332)
at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer._initializeAccessor(ASMAccessorOptimizer.java:814)
at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer.optimizeSetAccessor(ASMAccessorOptimizer.java:729)
at org.mvel2.optimizers.dynamic.DynamicSetAccessor.optimize(DynamicSetAccessor.java:83)
at org.mvel2.optimizers.dynamic.DynamicSetAccessor.setValue(DynamicSetAccessor.java:60)
at org.mvel2.compiler.CompiledAccExpression.setValue(CompiledAccExpression.java:59)
at org.mvel2.ast.DeepAssignmentNode.getReducedValueAccelerated(DeepAssignmentNode.java:90)
at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85)
at org.mvel2.compiler.CompiledExpression.getDirectValue(CompiledExpression.java:115)
at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:111)
at org.mvel2.MVEL.executeExpression(MVEL.java:946)
at org.smooks.engine.expression.MVELExpressionEvaluator.exec(MVELExpressionEvaluator.java:130)
at org.smooks.engine.expression.MVELExpressionEvaluator.exec(MVELExpressionEvaluator.java:146)
at org.smooks.cartridges.javabean.BeanInstanceCreator.createAndSetBean(BeanInstanceCreator.java:305)
at org.smooks.cartridges.javabean.BeanInstanceCreator.visitBefore(BeanInstanceCreator.java:261)
at org.smooks.engine.delivery.interceptor.AbstractInterceptorVisitor$VisitBeforeInvocation.invoke(AbstractInterceptorVisitor.java:178)
at org.smooks.engine.delivery.interceptor.AbstractInterceptorVisitor$VisitBeforeInvocation.invoke(AbstractInterceptorVisitor.java:175)
at org.smooks.engine.delivery.interceptor.AbstractInterceptorVisitor.intercept(AbstractInterceptorVisitor.java:122)
at org.smooks.engine.delivery.interceptor.ExecutionEventInterceptor.visitBefore(ExecutionEventInterceptor.java:68)
at org.smooks.engine.delivery.interceptor.AbstractInterceptorVisitor$VisitBeforeInvocation.invoke(AbstractInterceptorVisitor.java:178)
at org.smooks.engine.delivery.interceptor.AbstractInterceptorVisitor$VisitBeforeInvocation.invoke(AbstractInterceptorVisitor.java:175)
at org.smooks.engine.delivery.interceptor.AbstractInterceptorVisitor.intercept(AbstractInterceptorVisitor.java:122)
at org.smooks.engine.delivery.interceptor.TextConsumerInterceptor.visitBefore(TextConsumerInterceptor.java:90)
at org.smooks.engine.delivery.interceptor.AbstractInterceptorVisitor$VisitBeforeInvocation.invoke(AbstractInterceptorVisitor.java:178)
at org.smooks.engine.delivery.interceptor.AbstractInterceptorVisitor$VisitBeforeInvocation.invoke(AbstractInterceptorVisitor.java:175)
at org.smooks.engine.delivery.interceptor.AbstractInterceptorVisitor.intercept(AbstractInterceptorVisitor.java:122)
at org.smooks.engine.delivery.interceptor.StreamSinkWriterInterceptor.visitBefore(StreamSinkWriterInterceptor.java:87)
at org.smooks.engine.delivery.interceptor.AbstractInterceptorVisitor$VisitBeforeInvocation.invoke(AbstractInterceptorVisitor.java:178)
at org.smooks.engine.delivery.interceptor.AbstractInterceptorVisitor$VisitBeforeInvocation.invoke(AbstractInterceptorVisitor.java:175)
at org.smooks.engine.delivery.interceptor.AbstractInterceptorVisitor.intercept(AbstractInterceptorVisitor.java:122)
at org.smooks.engine.delivery.interceptor.ExceptionInterceptor.intercept(ExceptionInterceptor.java:125)
... 74 more
Caused by: java.lang.ClassNotFoundException: org.mvel2.compiler.Accessor
at java.base/java.lang.ClassLoader.findClass(ClassLoader.java:718)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 109 more
As I said, the javaObject contains all the required fields, because the conversion has been made successfully with one single request.
Could you please help me to understand what the error cause is and why I got :
Caused by: java.lang.ClassNotFoundException: org.mvel2.compiler.Accessor
Considering that :
<artifactId>mvel2</artifactId>
<name>mvel</name>
<version>2.5.2.Final</version>
is included in my application because the dependency has been resolved by smooks-core: 2.2.0 that is inside smooks-javabean-cartridge: 2.0.2?
Thanks in advance,
Serena
--
You received this message because you are subscribed to the Google Groups "Smooks Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to smooks-user...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/smooks-user/0764d7a3-d4c8-40b4-a5fd-5fc05254c558n%40googlegroups.com.