Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

How to invoke any servlet at publish instance in workflow step ?

Avatar

Community Advisor

I want to invoke the custom servlet to perform some action in publish server through custom workflow step. Anyone has idea how to achieve this scenario ?

5 Replies

Avatar

Level 10

Yes - but why not implement a service (as opposed to a Servlet) then you can use @Reference annotation from within your custom step to invoke the Java logic.

Avatar

Community Advisor

as per the acceptance criteria i have to invoke servlet from custom workflow step. Currently i am using CloseableHttpClient closeableHttpClient to invoke servlet.

Avatar

Community Advisor

Based on your project's design and requirements whatever you choose to use (either servlet or service or just a component), the underlying logic would primarily work in same manner -  Get hold of server's runmode and process your custom code.

To get the run mode in server side code -

Slice-CQ/WcmModeModel.java at master · Cognifide/Slice-CQ · GitHub

or use

final WCMMode mode = WCMMode.fromRequest(request);

if (null == mode || WCMMode.DISABLED.equals(mode)) { // do something }

*you would find WCMMode in uber-jar

Create your workflow, register it and use WCMMode to excute it only on publish server. Once everything is done, configure this workflow step in your custom workflow.

Example -

Adobe Experience Manager Help | Invoking Adobe Experience Manager Workflows using the AEM Java API

Hope that helps.

Avatar

Level 10

If you requirement is to invoke a Servlet as opposed to an AEM Service, then write Java code from your custom step that can perform a GET operation on a servlet.

How do I do a HTTP GET in Java? - Stack Overflow