Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.

Invoke Web Service Component - SOAPUI issues and "Embed WSDL" not working

Avatar

Former Community Member

I have a LiveCycle ES3 process that has a watch folder that receives XML files.  The XML files are merged with templates, and the resulting PDF is then dispatched to a printer.  Then a web service call is made to the server that delivered the XML files, which signals that the document has been printed.  Here's my problem.  When LiveCycle boots, everything starts fine, but when I drop multiple documents in the watch folder, I see the following message in the logs:

2012-04-23 10:00:14,957 INFO  [STDOUT] Configuring log4j from [jar:file:/usr/data/adobe_livecycle_es3/tmp/adobejb_server1/ArchiveStore/5029/soapui-2.0.2.jar!/soapui-log4j.xml]

2012-04-23 10:00:14,962 INFO  [STDOUT] Configuring log4j from [jar:file:/usr/data/adobe_livecycle_es3/tmp/adobejb_server1/ArchiveStore/5029/soapui-2.0.2.jar!/soapui-log4j.xml]

2012-04-23 10:00:14,957 INFO  [STDOUT] Configuring log4j from [jar:file:/usr/data/adobe_livecycle_es3/tmp/adobejb_server1/ArchiveStore/5029/soapui-2.0.2.jar!/soapui-log4j.xml]

2012-04-23 10:00:15,018 INFO  [STDOUT] Configuring log4j from [jar:file:/usr/data/adobe_livecycle_es3/tmp/adobejb_server1/ArchiveStore/5029/soapui-2.0.2.jar!/soapui-log4j.xml]

2012-04-23 10:00:15,023 INFO  [STDOUT] Configuring log4j from [jar:file:/usr/data/adobe_livecycle_es3/tmp/adobejb_server1/ArchiveStore/5029/soapui-2.0.2.jar!/soapui-log4j.xml]

2012-04-23 10:00:15,007 INFO  [STDOUT] Configuring log4j from [jar:file:/usr/data/adobe_livecycle_es3/tmp/adobejb_server1/ArchiveStore/5029/soapui-2.0.2.jar!/soapui-log4j.xml]

Unfortunately, the SOAPUI class that is trying to load log4j is not really safe to be using from muliple threads like this, and it leads to a null pointer exception that looks something like this:

2012-04-23 10:00:14,901 ERROR [STDERR] java.lang.NullPointerException

2012-04-23 10:00:14,905 ERROR [STDERR]  at com.eviware.soapui.DefaultSoapUICore.initSettings(DefaultSoapUICore.java:129)

2012-04-23 10:00:14,905 ERROR [STDERR]  at com.eviware.soapui.DefaultSoapUICore.getSettings(DefaultSoapUICore.java:192)

2012-04-23 10:00:14,905 ERROR [STDERR]  at com.eviware.soapui.SoapUI.getSettings(SoapUI.java:1019)

2012-04-23 10:00:14,905 ERROR [STDERR]  at com.eviware.soapui.impl.wsdl.AbstractWsdlModelItem.setConfig(AbstractWsdlModelItem.java:116)

2012-04-23 10:00:14,905 ERROR [STDERR]  at com.adobe.idp.dsc.webservice.MyWsdlProject.setConfig(WebServiceSoapUIInvoker.java:572)

2012-04-23 10:00:14,905 ERROR [STDERR]  at com.adobe.idp.dsc.webservice.MyWsdlProject.setConfig(WebServiceSoapUIInvoker.java:567)

2012-04-23 10:00:14,905 ERROR [STDERR]  at com.eviware.soapui.impl.wsdl.WsdlProject.<init>(WsdlProject.java:190)

2012-04-23 10:00:14,906 ERROR [STDERR]  at com.eviware.soapui.impl.wsdl.WsdlProject.<init>(WsdlProject.java:126)

2012-04-23 10:00:14,906 ERROR [STDERR]  at com.eviware.soapui.impl.wsdl.WsdlProject.<init>(WsdlProject.java:116)

2012-04-23 10:00:14,906 ERROR [STDERR]  at com.eviware.soapui.impl.wsdl.WsdlProject.<init>(WsdlProject.java:106)

2012-04-23 10:00:14,906 ERROR [STDERR]  at com.adobe.idp.dsc.webservice.MyWsdlProject.<init>(WebServiceSoapUIInvoker.java:568)

2012-04-23 10:00:14,906 ERROR [STDERR]  at com.adobe.idp.dsc.webservice.WebServiceInvoker.createSoapuiProject(WebServiceInvoker.java:451)

2012-04-23 10:00:14,906 ERROR [STDERR]  at com.adobe.idp.dsc.webservice.WebServiceInvoker.getOperation(WebServiceInvoker.java:421)

2012-04-23 10:00:14,906 ERROR [STDERR]  at com.adobe.idp.dsc.webservice.WebServiceSoapUIInvoker.getOperation(WebServiceSoapUIInvoker.java:537)

2012-04-23 10:00:14,906 ERROR [STDERR]  at com.adobe.idp.dsc.webservice.WebServiceSoapUIInvoker.invoke(WebServiceSoapUIInvoker.java:126)

2012-04-23 10:00:14,906 ERROR [STDERR]  at com.adobe.idp.dsc.webservice.WebServiceImpl.invoke(WebServiceImpl.java:98)

2012-04-23 10:00:14,906 ERROR [STDERR]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

2012-04-23 10:00:14,906 ERROR [STDERR]  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

2012-04-23 10:00:14,906 ERROR [STDERR]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

2012-04-23 10:00:14,907 ERROR [STDERR]  at java.lang.reflect.Method.invoke(Method.java:597)

2012-04-23 10:00:14,907 ERROR [STDERR]  at com.adobe.idp.dsc.component.impl.DefaultPOJOInvokerImpl.invoke(DefaultPOJOInvokerImpl.java:118)

2012-04-23 10:00:14,907 ERROR [STDERR]  at com.adobe.idp.dsc.interceptor.impl.InvocationInterceptor.intercept(InvocationInterceptor.java:140)

2012-04-23 10:00:14,907 ERROR [STDERR]  at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptorChainImpl.java:60)

2012-04-23 10:00:14,907 ERROR [STDERR]  at com.adobe.idp.dsc.interceptor.impl.DocumentPassivationInterceptor.intercept(DocumentPassivationInterceptor.java:53)

2012-04-23 10:00:14,907 ERROR [STDERR]  at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptorChainImpl.java:60)

2012-04-23 10:00:14,907 ERROR [STDERR]  at com.adobe.idp.dsc.transaction.interceptor.TransactionInterceptor$1.doInTransaction(TransactionInterceptor.java:74)

2012-04-23 10:00:14,907 ERROR [STDERR]  at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapterBean.execute(EjbTransactionCMTAdapterBean.java:357)

2012-04-23 10:00:14,907 ERROR [STDERR]  at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapterBean.doSupports(EjbTransactionCMTAdapterBean.java:227)

2012-04-23 10:00:14,907 ERROR [STDERR]  at sun.reflect.GeneratedMethodAccessor353.invoke(Unknown Source)

The above exception is due to the fact that the log object is null, and I think it's because multiple threads are trying to load up the logger in DefaultSoapUICore, and it fails.  This NullPointerException then leads to the following issue:

2012-04-23 10:00:38,753 ERROR [com.eviware.soapui.SoapUI] An error occured [Error loading schema types], see error log for details

2012-04-23 10:00:38,753 ERROR [soapui.errorlog] com.eviware.soapui.impl.wsdl.support.xsd.SchemaException: Error loading schema types

com.eviware.soapui.impl.wsdl.support.xsd.SchemaException: Error loading schema types

        at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.loadSchemaTypes(SchemaUtils.java:184)

        at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlContext.loadDefinitions(WsdlContext.java:264)

        at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlContext.access$500(WsdlContext.java:53)

        at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlContext$Loader.construct(WsdlContext.java:218)

        at com.eviware.soapui.support.swing.SwingWorkerDelegator.construct(SwingWorkerDelegator.java:45)

        at com.eviware.soapui.support.swing.SwingWorker$2.run(SwingWorker.java:111)

        at java.lang.Thread.run(Thread.java:619)

Caused by: com.eviware.soapui.impl.wsdl.support.xsd.SchemaException

        at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.buildSchemaTypes(SchemaUtils.java:273)

        at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.loadSchemaTypes(SchemaUtils.java:179)

        ... 6 more

and

2012-04-23 10:00:38,803 ERROR [STDERR] Failed to import WSDL

The only way I've been able to get this error to not happen is to only drop one document (viable for dev, but not prod) or to throttle the watchfolder down to 1 document and wait for that soapui logger to get initialized properly, and then crank the batch size back up again.  To resolve this, I thought I would try checking the "embed wsdl" box of the Web Service component of my process.  When I do this, I then click load, to cache the wsdl.  I also verify that the endpoint is correct in the Target URL box.  I then, check in, undeploy, redeploy, only this time my Web Service calls don't go through at all.  This is quite frustrating, and I need some help ideas on how to get this server running smoothly. 

Thanks in advance,

Ryan

1 Reply

Avatar

Former Community Member

I found that unchecking the "Invoke Ascynchronously" checkbox on the watch folder properties seemed to help the process initialize properly.