Expand my Community achievements bar.

Radically easy to access on brand approved content for distribution and omnichannel performant delivery. AEM Assets Content Hub and Dynamic Media with OpenAPI capabilities is now GA.
SOLVED

Creating custom activity( DSC service)..but getting errors while starting service in workbench

Avatar

Former Community Member

Hi ,

I have some hands on   developing the  process. So I started creating one custom activity.

I created one activity  which takes  inputs and gives a string after some  calculation. But program requires some additional jar  files which are  included as  lib folder in  my  java  project.

I exported java project as jar  file and installed successfully in  the workbench. But while starting the component .. getting error like  ::

Caused by: java.lang.ClassNotFoundException: No ClassLoaders found for: net.fortuna.ical4j.model.Date
at org.jboss.mx.loading.LoadMgr3.beginLoadTask(LoadMgr3.java:212)
at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:514)
at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:408)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.ungoverned.moduleloader.ModuleClassLoader.findClass(ModuleClassLoader.java:291)
at org.ungoverned.moduleloader.ModuleClassLoader.loadClass(ModuleClassLoader.java:164)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 117 more

Please find full description of  the error in the attachment. Hope LC  is   not taking  added jars in the  lib.

Because of this error i am not able to go forward.

Do I need to add/include the  necessary   jars into LC ? .

Please guide me  how to resolve this error.

Waiting  for your answer.

Thanks

Praveen

1 Accepted Solution

Avatar

Correct answer by
Former Community Member

Putting the jar in the appserver's lib folder is one way to have the class found at runtime, but not all sites will allow you to do this because you just made it available to everything running on the appserver.  Plus, now as you move your dsc around from test to staging to production, you have to remember to move the jar as well.

The alternative is to include the jar in your DSC and reference it in the classpath node in the component.xml file.

Just checkout how the distributed DSCs do it (adobe-remoteevents-dsc shows 2 jars in the root of the package and both are referenced in the component.xml's classpath.

Jon

View solution in original post

6 Replies

Avatar

Level 10

Here is my assumption..

The third-party class (net.fortuna.ical4j.model.Date) is used while development and not available during execution.

Which means, you added the required library when compiling your project and not available in to the JBoss by default.

Place your library under JBoss_Folder\Server\all\lib folder.

Restart JBoss and try to start the component again.

Nith

DISCLAIMER:

========================================================================

"This communication is intended only for the named recipient and others authorized to receive it.

It contains confidential or legally privileged information. If you are not the intended recipient, please notify us immediately, and note that any disclosure, copying, distribution or action you may take in reliance on this communication is strictly prohibited and may be unlawful. Unless indicated otherwise, this communication is not intended, nor should it be taken to create any legal and/or contractual relation or otherwise. Ministry of Finance (MOF) is neither liable for the proper and complete transmission of the communication, nor for any delay in its receipt.

Whilst MOF undertakes all reasonable efforts to screen outgoing e-mails for viruses, it cannot be held liable for any viruses transmitted by this e-mail."

Avatar

Former Community Member

Hi Nith,

Thanks for your quick reply.

Let me try  your pointers. I will get back :-)

Thanks

Praveen

Avatar

Correct answer by
Former Community Member

Putting the jar in the appserver's lib folder is one way to have the class found at runtime, but not all sites will allow you to do this because you just made it available to everything running on the appserver.  Plus, now as you move your dsc around from test to staging to production, you have to remember to move the jar as well.

The alternative is to include the jar in your DSC and reference it in the classpath node in the component.xml file.

Just checkout how the distributed DSCs do it (adobe-remoteevents-dsc shows 2 jars in the root of the package and both are referenced in the component.xml's classpath.

Jon

Avatar

Former Community Member

Hi Jon and NIth,

Thanks for your  inputs.

Now I created sample   DSC actvity. To extend  the functionality, I need to put some validations. To show the  error messages on th wrokbench..

it seems I need   two classes

com.adobe.workflow.pat.PATRuntimeException;

com.adobe.workflow.pat.service.PATExecutionContext;

Actually I tried to get the classes (jar)  in google  .. but  din't .

Please help me where can i get the  jar file ?

Please share.

Thanks

Praveen

Avatar

Level 10

These classes should already exists on your LiveCycle machine.

Can't you just make an import statement to reference them in your component.xml? Something like:

<import-packages>
<package version="1.0">com.adobe.workflow.pat.PATRuntimeException</package>
<package version="1.0">com.adobe.workflow.pat.service.PATExecutionContext</package>
</import-packages>

Jasmin

Avatar

Former Community Member

Hi Jasmin,

Thanks  for your reply.

I  knew required  classes  should  be  present in  workbench machine  that's why we  are able to show error or validation messages at workbench

while  developing the  process.

For   developing custom activity , I have  to write  java  logic and throw  error message for invalid  inputs.... For that I have to  import  those  classes in  jave  classes   please correct me if I am wrong.

i want to  import the above classes in java  source code and write the  code accordingly and  make jar without errors and  import the same into workbench.

I hope configuration in component.xml  will be  referenced while deploying/installing the  componnet  into the workbench.

Thanks

Praveen.

The following has evaluated to null or missing: ==> liqladmin("SELECT id, value FROM metrics WHERE id = 'net_accepted_solutions' and user.id = '${acceptedAnswer.author.id}'").data.items [in template "analytics-container" at line 83, column 41] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign answerAuthorNetSolutions = li... [in template "analytics-container" at line 83, column 5] ----