Expand my Community achievements bar.

Learn about Edge Delivery Services in upcoming GEM session

Action is getting Stalled at LDAP QPAC

Avatar

Former Community Member
Hi,<br /><br />I had created a workflow but my workflow is getting stalled at LDAP Qpac.<br /><br />and I am finding following error in admin console.<br />"javax.naming.NoInitialContextException: Cannot instantiate class: [Root exception is java.lang.ClassNotFoundException: ]<br /> at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:652)<br /> at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)<br /> at javax.naming.InitialContext.init(InitialContext.java:219)<br /> at javax.naming.InitialContext.<init>(InitialContext.java:195)<br /> at javax.naming.directory.InitialDirContext.<init>(InitialDirContext.java:80)<br /> at com.avoka.workflow.qpac.ldap.LdapBroker.<init>(LdapBroker.java:53)<br /> at com.avoka.workflow.qpac.ldap.LdapService.execute(LdapService.java:67)<br /> at com.adobe.workflow.engine.PEUtil.executeAction(PEUtil.java:184)<br /> at com.adobe.workflow.engine.ProcessEngineBMTBean.executeAction(ProcessEngineBMTBean.java:1457)<br /> at com.adobe.workflow.engine.ProcessEngineBMTBean.asyncExecuteActionCommand(ProcessEngineBMTBean.java:1412)<br /> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br /> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br /> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br /> at java.lang.reflect.Method.invoke(Method.java:324)<br /> at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:683)<br /> at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)<br /> at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84)<br /> at org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(AbstractTxInterceptorBMT.java:144)<br /> at org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT.java:62)<br /> at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:72)<br /> at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:120)<br /> at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)<br /> at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)<br /> at org.jboss.ejb.StatelessSessionContainer.internalInvoke(StatelessSessionContainer.java:331)<br /> at org.jboss.ejb.Container.invoke(Container.java:723)<br /> at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:359)<br /> at org.jboss.ejb.plugins.local.StatelessSessionProxy.invoke(StatelessSessionProxy.java:83)<br /> at $Proxy279.asyncExecuteActionCommand(Unknown Source)<br /> at com.adobe.workflow.engine.ProcessCommandControllerBean.onMessage(ProcessCommandControllerBean.java:109)<br /> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br /> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br /> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br /> at java.lang.reflect.Method.invoke(Method.java:324)<br /> at org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.java:458)<br /> at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)<br /> at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:62)<br /> at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84)<br /> at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:315)<br /> at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:148)<br /> at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:90)<br /> at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)<br /> at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:372)<br /> at org.jboss.ejb.Container.invoke(Container.java:723)<br /> at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:914)<br /> at org.
11 Replies

Avatar

Level 9
Hi

You need to specify the deployment properties for this QPAC, as specified in the user guide: standards-based-qpacs.pdf.



In short:

The initial context factory should be: com.sun.jndi.ldap.LdapCtxFactory



The provider URL should be something like:

ldap://myserver:389, but this will obviously depend on the location of your LDAP server.



The user and password are only required if your LDAP server requires them.



Regards,

Howard

Avatar

Former Community Member
I tried to made this setting but it is not working.



I am in doubt that is it because of Java Class path is not getting set in application

Avatar

Former Community Member
Hi,



I tried some more option now that error got over and I am getting following error.Instead of I had given correct uid I cross checked that from User QPAC. I am unable to understand root cause.

Is authentication is must for corporate directory.



Individual (canonical name, domain): null , null is either inactive or does not exist.

at com.adobe.workflow.qpac.user.UserService.getSpecificUserQueue(UserService.java:496)

at com.adobe.workflow.qpac.user.UserService.execute(UserService.java:161)

at com.adobe.workflow.engine.PEUtil.executeAction(PEUtil.java:184)

at com.adobe.workflow.engine.ProcessEngineBMTBean.executeAction(ProcessEngineBMTBean.java:1457)

at com.adobe.workflow.engine.ProcessEngineBMTBean.asyncExecuteActionCommand(ProcessEngineBMTBean.java:1412)

at sun.reflect.GeneratedMethodAccessor811.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:683)

at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)

at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84)

at org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(AbstractTxInterceptorBMT.java:144)

at org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT.java:62)

at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:72)

at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:120)

at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)

at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)

at org.jboss.ejb.StatelessSessionContainer.internalInvoke(StatelessSessionContainer.java:331)

at org.jboss.ejb.Container.invoke(Container.java:723)

at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:359)

at org.jboss.ejb.plugins.local.StatelessSessionProxy.invoke(StatelessSessionProxy.java:83)

at $Proxy257.asyncExecuteActionCommand(Unknown Source)

at com.adobe.workflow.engine.ProcessCommandControllerBean.onMessage(ProcessCommandControllerBean.java:109)

at sun.reflect.GeneratedMethodAccessor504.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.java:458)

at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)

at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:62)

at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84)

at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:315)

at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:148)

at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:90)

at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)

at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:372)

at org.jboss.ejb.Container.invoke(Container.java:723)

at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:914)

at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1208)

at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:276)

at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:871)

at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:159)

at org.jboss.mq.SpySession.run(SpySession.java:347)

at org.jboss.jms.asf.StdServerSession.run0(StdServerSession.java:200)

at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:180)

at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)

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

Avatar

Level 9
Hi abhishek



The user QPAC is saying that you're trying to allocate the task to a null user. I suspect that the LDAP query in the previous step is bringing back null data from your ldap query. It's very hard to know exactly what's going on without seeing the detail of what you're doing in your workflow.



My suggestion is to work on one bit at a time - first make sure that your LDAP query is bringing back a valid user name. One way to test this is to specify the user-name-variable as an "out" parameter, and invoke the workflow as a web service. Another way to do this is to download our variableLogger QPAC (it's a freebie), which will enable you to output the values of your process variables to a file or to the console.



I've also found that the Softerra LDAP browser is an invaluable tool for helping to get your LDAP queries correct.



Good luck!



Howard

http://www.avoka.com

Avatar

Former Community Member
Hi,

Thanks Howard I will going to try this.



But I am not sure why I am facing such challange this time we did same thing earlier and it worked.



This time jsut we are trying to intigrate it with our corporate AD 2003 and it is not working out. I can not able to extract values from AD 2003 and some time it does not give any error also and moves to the next task.

Might be my office AD is haveing some security settings I have to check with those guys.

Avatar

Level 9
Hi

You need to be careful with LDAP Queries. Sometimes the query can be valid, but the data it returns is blank.



You could test for this by putting a path in your workflow that routes the workflow to an administrator if the user is not found. Then the administrator could manually assign the task to the correct user. Or something like that.



Let us know how you go.



Howard

Avatar

Former Community Member
Hi Howard,



It is really great that I am getting your consistent support to develop my application.

Our requirement is such that we have to fill the userid in the form and it will going to validate against the AD and if it is valid user then only it is going to route the form to Appropriate user.



If you are saying that if the query is correct then only some time it is giving blank data so it is a big concern and have to redesign my workflow according to that.

Avatar

Level 9
Hi Abhishek



No worries :)

I know it can be frustrating working on a new product with not a lot of support around you.



It's difficult to know exactly what your workflow is doing, but I agree with you that it's possible that the LDAP query might return blank data, and you need to design your workflow to accomodate this.



Good luck!



howard

Avatar

Level 9
PS Two things you may want to consider:

1. We have a QPAC that looks up users in the local user data that is cached in the Workflow database. This QPAC is much easier to use than LDAP, and gives you quite a lot of information about users in a very simple way. It can automatically find a user based on someone typing in either their login name or their email address, etc. You can download a beta version at: http://www.avoka.com/betaqpacs/



2. If there is some feature enhancement for the LDAP qpac that would make your life easier/simpler, then please submit the feature request to support.



Howard

Avatar

Former Community Member
Hi Howard,



We are working on a client project so I can not use any beta released QPAC. Mean while I cntacted to Adobe support and they had given me Some Patch to apply I had applied that patch but again I am not able to retrive any values nagain so they might be worried that might be my username and password is not haveing sufficient previlage to extract the data from AD2003 so I am contacting to Support team of My Corporate AD.

I will surely share my happienss also with you when this will be done

:)

Regards,

Abhishek

Avatar

Level 9
Hi



I'd still recommend trying out the UserLookup QPAC. It should be out of beta in a few weeks, or earlier if you have an urgent need.



I also recommend trying the Softerra LDAP browser (free download). This will really help you to diagnose your LDAP issues.

http://www.softerra.com/download/download.php



Howard