Hi Readers,
Here you may comment all the questions/ doubts which you encountered during your journey for AEM. I will try my best to help you out and might connect with you to solve them too.
Also you may post interesting questions which you went through during your respective interviews , and I will try to answer them and thereby increase the Question Bank for masses.
So go ahead and post the questions !!
Thanks a lot .
Hashim
Hi Hashim,
The text wrap doesn’t work for a customized component when rendered in Author.
How do I rectify this?
Thanks
LikeLike
Hi Ekta, I couldn’t say much about without seeing the logs and the custom code. It would be good to add some loggers in the code and debug.
LikeLike
Hi Hasim,
I got one requirement to do customization in file uplaod with some naming convension, I did it in lib folder inside but one problem i getting every new feature pack installation in production my change will be overridden. So i just want to know can i try the same structure in app folder. when i am trying so i am geeing javascript error(ught DOMException: Failed to execute ‘registerElement’ on ‘Document’: Registration failed for type ‘coral-chunkfileupload’. A type with that name is already registered.) and file is not uploaded. Could you please suggest some solution for this.
thanks in advance .
LikeLike
Hi Abhishek,
I think while overriding you are keeping the name constant. As there could be only one widget by that name, it could be an issue in JS. Try to check this https://helpx.adobe.com/experience-manager/6-3/sites/developing/using/sling-resource-merger.html to do it correctly.
Its always advisable to not add any libs code and always override in the apps folder.
LikeLike
Hi Hashim,
I have a multifield dialog with two textfield widgets.I want to compare the values entered in these textfields.
I am able to do in normal dialog using Listeners, but unable to do for Multifield dialog.(Please help me where to add listener node, and how to access the textfield
widgets using javascipt)
LikeLike
Hi,
Using listeners in multifield gets tricky if you are not using the OOTB multifield widget and have customized that. You might have to change the widget definition to suit your needs. Check this blog for some ideas.
https://forums.adobe.com/thread/2333721
LikeLiked by 1 person
Hi Hashim,
I am planning to give certification exam this week. But as per new pattern, the passing score is very unclear. I request you to please suggest on the same? https://training.adobe.com/certification/exams/aem_6_0_developer/_jcr_content/sampleExam
Thanks,
Rohit
LikeLiked by 1 person
Hi Rohit,
They keep on changing the passing score. So it’s not clear. As per the document its approx 550 (75%), but it really depends on the difficulty level of exam.
Keep in mind, Adobe wants you to clear the exam. So if you work hard it should be easy.
LikeLiked by 1 person
Hi Hashim,
I have created workflow models and configured launcher for page creation and content update. It works fine by workflow trigger –>approval—>moved to publish.
But when I activate or deactivate a page, automatically it is reflected in publish without workflow process. What launcher condition has to be given for Page Activation/ Deactivation?
LikeLike
Hi,
Try to override the default workflow with your custom one using this way – https://forums.adobe.com/thread/2390901
You should be able to trigger your Custom Workflow on every page request.
LikeLike
Hi Hashim,
I have a user group “Content admin”. where the user can only have the following permissions:
1.Can Activate & Deactivate pages (so I have enabled Replicate privileges)
2.Cannot Create,Modify,Delete content (so I disabled create,modify,delete privi for content folder)
3.Can complete the workItem from the workflow.
On disabling the permissions for Create, modify and delete, the user cannot complete the workflow step.It throws error as “Could not complete workflow step” and console error as:
Unable to add OrMemory
Status 500
Message Unable to add OrMemory
Thanks
LikeLike
It could be possible as the Workflow might be adding/modifying some jcr properties/ metadata for that page. As you have blocked Modify permissions this function is restricted.
LikeLike
can someone share the exact steps to install and configure dispatcher on apache2 in ubuntu?
LikeLike
Hi,
This should be helpful to you http://www.tothenew.com/blog/aem-dispatcher-setup-for-linux/
Ubuntu should come with preinstalled Apache2 , but if thats not the case please use this link
https://www.digitalocean.com/community/tutorials/how-to-install-the-apache-web-server-on-ubuntu-16-04
LikeLike
Hi,
I want to do validtaion for title against javascript tags present in it, before author saves the value to WCM/JCR. How to do this.
LikeLike
Hi, You can add custom Validations using the file validations.js . Check this example –
/libs/cq/gui/components/authoring/dialog/clientlibs/dialog/js/validations.js
https://helpx.adobe.com/experience-manager/using/creating-touchui-validate.html
LikeLike
Hi Hashim,
I want to reuse one of my component for example: Header component in other non AEM application.
We need the same functionality and UI design of the component in other non AEM application.
Can you please provide any approach to achieve this.
Thanks,
Sumedh
LikeLike
Hi,
I am not sure in which application you want to port your AEM component.
If you want to pick and place your generated static HTML component – its just HTML + CSS + JS
if you want to Author in AEM and use its content/ properties at other places you can export the data from AEM server using Sling Exporter or using .json for that path.
LikeLike
I have followed the SCHEDULER API.i was got this error. Please help for me.
ERROR* [qtp1525791750-5520] com.adobe.cq.Firstschedule-bundle [com.adobe.cq.HelloWorldScheduledService(2889)] Could not load implementation object class com.adobe.cq.HelloWorldScheduledService (java.lang.ClassNotFoundException: com.adobe.cq.HelloWorldScheduledService not found by com.adobe.cq.schedule-bundle [489])
java.lang.ClassNotFoundException: com.adobe.cq.HelloWorldScheduledService not found by com.adobe.cq.schedule-bundle [489]
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1574)
at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1415)
at org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1595)
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1525)
at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1925)
at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:978)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.initDependencyManagers(AbstractComponentManager.java:952)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.collectDependencies(AbstractComponentManager.java:980)
at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:812)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:724)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:399)
at org.apache.felix.scr.impl.config.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:676)
at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:339)
at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:360)
at org.apache.felix.scr.impl.Activator.access$000(Activator.java:53)
at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:260)
at org.apache.felix.utils.extender.AbstractExtender.createExtension(AbstractExtender.java:259)
at org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(AbstractExtender.java:232)
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:482)
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:415)
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232)
at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444)
at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:916)
at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:835)
at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:517)
at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4541)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2172)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:984)
at org.apache.felix.webconsole.internal.core.BundlesServlet.doPost(BundlesServlet.java:365)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:567)
at org.apache.felix.webconsole.internal.servlet.OsgiManager$3.run(OsgiManager.java:465)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:461)
at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:85)
at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:79)
at com.adobe.granite.license.impl.LicenseCheckFilter.doFilter(LicenseCheckFilter.java:308)
at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135)
at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74)
at org.apache.felix.http.sslfilter.internal.SslFilter.doFilter(SslFilter.java:89)
at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135)
at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74)
at org.apache.sling.security.impl.ReferrerFilter.doFilter(ReferrerFilter.java:290)
at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135)
at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74)
at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:129)
at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135)
at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74)
at org.apache.sling.featureflags.impl.FeatureManager.doFilter(FeatureManager.java:116)
at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135)
at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74)
at org.apache.sling.engine.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:75)
at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135)
at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74)
at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:124)
at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:61)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:499)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Unknown Source)
25.04.2018 17:47:28.794 *ERROR* [qtp1525791750-5520] com.adobe.cq.Firstschedule-bundle BundleComponentActivator : Bundle [495] Unexpected failure enabling component holder com.adobe.cq.HelloWorldScheduledService (java.lang.IllegalStateException: Could not load implementation object class com.adobe.cq.HelloWorldScheduledService)
java.lang.IllegalStateException: Could not load implementation object class com.adobe.cq.HelloWorldScheduledService
at org.apache.felix.scr.impl.manager.AbstractComponentManager.initDependencyManagers(AbstractComponentManager.java:959)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.collectDependencies(AbstractComponentManager.java:980)
at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:812)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:724)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:399)
at org.apache.felix.scr.impl.config.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:676)
at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:339)
at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:360)
at org.apache.felix.scr.impl.Activator.access$000(Activator.java:53)
at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:260)
at org.apache.felix.utils.extender.AbstractExtender.createExtension(AbstractExtender.java:259)
at org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(AbstractExtender.java:232)
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:482)
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:415)
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232)
at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444)
at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:916)
at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:835)
at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:517)
at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4541)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2172)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:984)
at org.apache.felix.webconsole.internal.core.BundlesServlet.doPost(BundlesServlet.java:365)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:567)
at org.apache.felix.webconsole.internal.servlet.OsgiManager$3.run(OsgiManager.java:465)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:461)
at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:85)
at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:79)
at com.adobe.granite.license.impl.LicenseCheckFilter.doFilter(LicenseCheckFilter.java:308)
at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135)
at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74)
at org.apache.felix.http.sslfilter.internal.SslFilter.doFilter(SslFilter.java:89)
at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135)
at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74)
at org.apache.sling.security.impl.ReferrerFilter.doFilter(ReferrerFilter.java:290)
at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135)
at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74)
at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:129)
at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135)
at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74)
at org.apache.sling.featureflags.impl.FeatureManager.doFilter(FeatureManager.java:116)
at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135)
at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74)
at org.apache.sling.engine.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:75)
at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135)
at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74)
at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:124)
at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:61)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:499)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Unknown Source)
LikeLike
As per the logs its throwing java.lang.IllegalStateException and ClassNot Found , it could be that the Schedular Service isn’t activated properly. Check the bundles in OSGi if everything is in Active state.
LikeLike
Hi Hashim Khan, I have checked the OSGI bundle its active state only. its it showing same.
LikeLike
Its working fine now Hashim. thanks
LikeLike
Hi, What was the issue?
LikeLike
Hi Hashim Khan,
Kindly provide some steps for schedule the job in AEM.
LikeLike
Use this http://www.cronmaker.com/
LikeLike
this is screen shot
LikeLike
Hi Hashim,
Can you please provide some documentations about the syncing of Media Library and DAM in AEM?
Thanks,
Lena
LikeLike
Hi, Which Media Library are you talking about? Does it contain Metadata along with Assets ?
LikeLike
Hi Hashim Khan,
I want read the values from properties file and check the condition in serviceImpl class and schedule the job.
for example : look like we have 3 environment (Dev,QA,Prod), for each instance have different cron expression for schedule the job.
LikeLike
Hi ,
The scheduler should pick the cron expression based on the runmode of the environment. You can read about ConfigurationPolicy.REQUIRE from this link : http://blog.vogella.com/2016/09/26/configuring-osgi-declarative-services/
If you explicitly wants to read the properties of a configuration use this –
http://aempodcast.com/2016/apache-sling/demonstrate-slingosgiconfig-runmodes/#.WunSUdPwbUI
LikeLike
http://keysandstrokes.info/aem-run-modes/
LikeLike
Hi Hashim – Can we write a groovy script to generate page content into a json (this is jus like ootb .json), but I need the script to run thru the child pages as well and give a consolidated content of pages under a path in json format (including all content within every page).
LikeLike
Hi,
That’s an OOTB pre-built functionality when you use .-1.json or .infinity.json after your content path. But if you still want to get it via Groovy you can write a recursive method to fetch all the pages and then their properties.
Alternatively, you can also explore to use Sling Exporters https://helpx.adobe.com/experience-manager/kt/platform-repository/using/sling-model-exporter-tutorial-develop.html
LikeLike
Q- New external Library dependency added to POM. But the bundle still doesn’t load after deployment. Where should you add external library package to?
1. Private-package
2. Export-package
3. Import-package
4. Include-package
please help me with this question
LikeLike
You should include them in Export packages. You can also use http://localhost:4502/system/console/depfinder to check if things are working fine and dependency is correctly resolved.
https://stackoverflow.com/questions/9399206/adding-external-java-libraries-to-adobe-day-crx-2-2-for-use-in-jsp-files
LikeLiked by 1 person
but we have to include these so shouln’t it be import package ?kinldy explain
LikeLike
Read this to understand better – http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html
By default Import-Package is assumed to be * , so if the dependency is included its not needed.
Export-Package is needed when you need to use that package. By default is all your local java in that project.
There is nothing like Include-Package.
LikeLike
Although if the option is for Include-Resource , then it could be an answer
LikeLike
Product pages need to be created under category page only. Which of these is true?
1. Use allowedTemplates on product page template
2. Use allowedParents on product page template
3. Use allowedChildren on category page
Answer: use allowedChildren on category page
also this one as according to me if product page has to be restricted them allowed parent should be category page
Thanks in advance
LikeLike
Although the language is somewhat confusing. This link explains well https://helpx.adobe.com/experience-manager/6-3/sites/developing/using/templates.html
1 is rejected as allowedTemplates should be on Category pages.
2 and 3 can be right answers, allowedParents would be on child page – product page
LikeLike
Hi Hashim,
We have a requirement where we need to move expired article from Original folder to Archival Folder based on published date. We are able to move articles to new folder through our Java codes, but some properties are getting missed and page is getting de-activated while movement . Using AEM 6.0 we are still able to open the page using Vanity from the new location. But in 6.3 we are not able to open it.
Is there any solution to move the page from one location to another with all the properties(using java code/programmically).
LikeLike
Hi Mahesh,
The PageManager Move resource is the way to go for this request. https://goo.gl/ru8Bav If your properties are not completely getting moved, there must be some error in the encoding of property values. From AEM 6.0 to AEM 6.3 there are a lot of API level changes that could be the reason for it. Page De-activation might also be a step in the resource move function. You may activate the page later or via code, after verification.
Another solution is to use groovy, but that would also use PageManager move function, as its the best way out. It will also change the references of your moved page.
LikeLike
Hi Hashim,
I have a question about Unspecified search keyword in Adobe Analytic. I see it takes more than 50% of total keywords search in Search report. Is it ok or it is error when searching?
LikeLike
Hi,
This might be helpful for you –
https://helpx.adobe.com/analytics/kb/none-unspecified-and-unknown.html
https://forums.adobe.com/thread/2452182
LikeLike
hi Hashim ,
I had a query regarding MSM Rollout configs in AEM 6.3
We are facing issue with link updates on rollout. Following is our setup
Blueprint:
/content/testcompany/language-masters/en
Live Copy:
/content/testcompany/us/en
If we add a link (/content/testcompany/language-masters/en/xyz) to any component on page /content/testcompany/language-masters/en/test, this link will not get updated on rollout. On live copy page /content/testcompany/us/en/test i can still find same link (/content/testcompany/language-masters/en/xyz). This issue only occurs when a link on a page does not match blueprint path. If on same test page if i add a link (/content/testcompany/language-masters/en/test/test1), it will get updated correctly to /content/testcompany/us/en/test/test1
Have you faced this issue before? Any inputs will be appreciated.
Thanks.
LikeLike
I am not sure what are you trying to do here ? Shouldnt the live-copy use all the links present in the live-copy path ? Or it could be that the xyz link isnt getting rolled out. Please check your MSM configurations.
LikeLike
Hi Hashim Khan,
I want prepare for AEM certificate. kindly guide to me. Any Online material or how will prepare and do the certificate .
LikeLike
Hi, Please checkout the links here https://hashimkhan.in/aem-adobecq5-certification-question-bank/
LikeLike
Hi Hashim Khan,
Can you provide some sample source code for Injecting custom Resources in AEM 6.4.
LikeLike
Haii Hashim
i want known how many components are present in page thier is no CRXDE in present in system
LikeLike
Try debug=layout to find this information.
LikeLike
Hashim, we want to do a “in” query – what’s the best way to do an in query which is high performant? For example, if i needed to know a SKU in (‘a’,’b’,’c’,’d’,’e’) ? Is there a predicate that evaluates this kind or there is any other way you know of other than traversing the path 5 times
LikeLike
Hi, I didn’t understand what are you trying to ask. If you want to search through multiple paths – use groups. Try to paste the query here if you want me to check/optimize it to make it performant. Most of the predicates cover general use cases, but if you need to create a new predicate you can also do so.
Read this https://hashimkhan.in/2015/12/02/query-builder/
https://hashimkhan.in/2017/10/09/digest-the-query-builder-api-aem-search-tips/
LikeLike
Hashim, Basically if I have repository paths as /ecomm/product1/sku1, /ecomm/product1/sku2. Both of them have a property sku with a value example “a” and “b”. At /ecomm i need to get both nodes sku1 and sku2 by matching sku in (‘a’,’b’) and it should return me those two resources. Is there a predicate that does a SQL equivalent of IN that’s essentially what I am asking.
LikeLike
Hi, If the same property has multiple values and you need both the nodes in results, you can search for Multiple values for a property :
http://localhost:4502/libs/cq/search/content/querydebug.html?_charset_=UTF-8&query=type%3Dcq%3APageContentproperty%3Djcr%3Atitleproperty.1_value%3DProductsproperty.2_value%3DSquareproperty.3_value%3DEventsp.limit%3D-1
type=cq:PageContent
property=jcr:title
property.1_value=Products
property.2_value=Square
property.3_value=Events
p.limit=-1
Make the query similar to your use case.
Also read this post for more such examples : https://hashimkhan.in/2017/10/09/digest-the-query-builder-api-aem-search-tips/
LikeLike
Can you please provide us any study material for AEM developer Certificate preparation?
LikeLiked by 1 person
Hi, Check out these links https://forums.adobe.com/thread/2324634
I believe docs.adobe.com should be the most reliable source to study.
LikeLiked by 1 person
Thank you
LikeLike
I have a java service class and from this class i want to record a specific information in a log file every time this class is invoked.
Creating a custom log file and having a log level of debug or info would display all the logs of this class where as i want to record only specific information in a log file.
What can be the possible workaround ?
LikeLike
Hi,
Depending on the use case, you can create Logger for that Class in debug / info mode.
Log.info(“YourSearchTerm: This is a specific log. “);
Then from that file make a grep to fetch those specific logs.
“grep -n “YourSearchTerm” * > output-file”
LikeLike
Alternatively, you can make rest of the logs of that Class as “debug” and make this specific log as “info”. Then fetch the customlog to be at Info level.
LikeLike
But setting info level would mean that both debug and info statements are printed in the log file.
LikeLike
Requirement is that a one should be able to see the history of this particular event in a single file or log file.
LikeLike
If you setup customlog as Debug all the levels above it would be displayed. However if you setup as Info level , debug logs wont be visible. Read more https://www.tutorialspoint.com/log4j/log4j_logging_levels.htm
LikeLike
Hi Hashim,
I’m facing an issue with AEM 6.3, while making a live copy sometimes few rollout configs got missing from the sync config dropdown. If I restart the server then only issue got resolved, can you please help me with this ?
Thanks
LikeLike
Hi Vineet,
If the issue is coming in the OOTB configurations of the Bluetooth/Live copy you should raise the issue with DayCare customer care. If you have modified the Rollout configurations, then it might be your config issue. Please check logs for that.
LikeLike
Hi Hashim,
Thanks for helping out earlier.
I have a requirement where I have content (eg: all brands info)which has to be shared between two AEM projects ,what can be the recommended approach on this .
Can you provide some guidance .
Thanks again!!
LikeLike
Hi Farah, If the 2 AEM projects are present in the same environment it’s better to create a global folder Or Iparsys inheritance for brand information and let both projects pick data from that common folder / iParsys.
If the AEM instances are different, you should duplicate the brand information in both instances.
LikeLike
Hi Hashim,
“anonymous” user does not have rights to read the code from the components under /apps, so how the components still get executed on the page?
Thanks
LikeLike
Anonymous user just needs read access to access content. Code processing is handled by Sling Sessions, it’s not related to code Read access.
LikeLike
Hi Hashim,
i need help in writing a groovy script.
i have a path like /content/myproject/en/node1/node2/node3/node4/jcr:content/planing
i need retrieve property of planning node.
Could you please help here?
Thanks
LikeLike
Please check the samples shared here https://hashimkhan.in/2015/03/12/adventures-with-groovy-script/
LikeLike
Hi Hashim,
Kindly provide the sample steps for automating the backup of AEM via cron job and on completion of backup.
Please provide some sample code or any documents.
Thanks and Regards,
Prabu.T
LikeLike
Hi,
These days environment backups are happening on Cloud environments – with daily or weekly snapshots. But if you still want to backup your instance manually . you can read this – https://helpx.adobe.com/experience-manager/6-3/sites/administering/using/backup-and-restore.html
LikeLike
Hi Hashim,
Can you please tell me the difference between primary node type and mixin node type?
Thanks
LikeLike
Read this – https://docs.adobe.com/docs/en/spec/jcr/1.0/6.7.4_Primary_and_Mixin_Node_Types.html it clarifies in a good way.
LikeLike
Can you pls help with below question.
A Component is added in template and saved. Now but changes are not reflected in existing pages
What needs to be done:
a) Clear browser cache
b) Re-compile the JSP
c) We cannot modify the existing Templates
d) Changes will take some time to get updated
e) With new packages/pages creation, changes will get created.
LikeLike
31. What can be done if we want to overload text image component
(Choose 2)
1. Make Dialog
2. Add new CSS to it
3. Change the extension to .jpg
4. Create a new JSP to render a image.
LikeLike
Hi Hashim,
how to sort resultant page or nodes in groovy script
LikeLike
Hi Hashim,
Thanks for helping out earlier.
I have a requirement where i need to fetch some dialog properties and use the same into another component.Can you guide me with the approach.Thanks
LikeLike
Hi Hashim,
Could you please suggest from where i should study for AEM Assets (AEM DAM) certification.
LikeLike
Hi I am having a bug using cq-msm-lockable on cq/gui/components/authoring/dialog/richtext
It works well but also allows author to edit values.
Do you have any thought/solution/suggestion for this.
I have tried it with adding additional node granite:data as well.
LikeLike
Hi
Do you have any AEM 6 Business Practitioner certification material/link.
If you have,can you please guide me.
Thanks,
Rahul Kadam
LikeLike
Hi Hashim,
I’m planning to use the curl command for garbage collection but when i’m trying to access this i’m getting 404
Curl commands:
1.curl -u admin:admin -X POST http://localhost:4502/system/console/jmx/com.adobe.granite:type=Repository/op/runDataStoreGarbageCollection/java.lang.Boolean
2. curl -u admin:admin -X POST –data markOnly=true http://localhost:4503/system/console/jmx/org.apache.jackrabbit.oak“%”3Aname”%”3Drepository+manager”%”2Ctype”%”3DRepositoryManagement/op/startDataStoreGC/boolean
LikeLike
Hi,
can you Please let me know if we can integrate AEM 6.2 with SAML 1.1.
Our service Provider is AEM and IDP is using SAML 1.1.
Does out of box SAML 2.0 handler can integrate with IDP with SAML 1.1.
If no,what would be approach to integrate AEM with SAML 1.1.
Do we need to write Custom SAML handlers for Integration.
LikeLike
Hi Hashim,
I’m trying to figure out if it’s possible to customize the name of the node AEM creates when I drop a component on the page.
The node where my component is defined is named “knowledge-center-question” and when I drop it, AEM creates a node named “knowledge_center_que” in the page’s node tree using its default naming logic. I would prefer for the node name to be “question” when it is dropped (but I’d rather not rename the component itself).
It seems like this kind of thing must be possible given how customizable everything is in AEM, but I’m struggling to find an answer.
Thank you!
Ben
LikeLike
Hi Ben, It seems to be the OOTB implementation of AEM. it limits the node name characters.
Check this out https://stackoverflow.com/questions/54602200/how-can-i-change-the-name-of-the-node-aem-creates-when-a-component-is-first-drop?rq=1 for various ideas for this.
LikeLike
Hi Hashim
am getting java.lang.NoClassDefFoundError: javax/net/ssl/HttpsURLConnection in runtime in AEM server
in my code am not calling HTTPsURLConnection class but am consuming adal4j jar in which HTTPsURLConnection is been called,
HTTPsURLConnection is belongs to java library rt.jar only but still am facing issue
which is working fine in java console
am using AEM 6.4 and java 1.8
LikeLike
Please check if this class is resolved in your bundles. There might be a conflict there.
LikeLike
Hi Hashim,
I have a requirement of implementing authentication for servlets. I have a servlet created that serves Post requests coming from other apps and is succeeding posting data to JCR nodes. Now, I have to make this secure so that authorized apps can hit this service(with correct credentials).
I thought of creating a user/group having credentials and only they can access the servlet.
How can I achieve this?
Any help would be helpful.
Using AEM 6.2
LikeLike
Hi Satish, You can create an authentication token / cookie / request header param for that servlet based on a Dynamic Encryption algorithm https://howtodoinjava.com/security/aes-256-encryption-decryption/
Other way is to let the service Authenticate itself, before every call , AEM would pass on a token , and then if the token is present you let the third party do a POST to JCR.
LikeLike
Hashim,
Thank you so much for the response.
Can you please elaborate on the 2nd way you mentioned?
And also, can’t we configure it in a way that only a particular user/group( created in http://localhost:4502/useradmin )can access it.
The reason I am asking this is because right now only users defined in http://localhost:4502/useradmin are able to access the servlet with credentials passed in header via basicAuth.
I achieved this by doing below config changes in localhost:4502/system/console/configMgr :
– removing ‘POST’ method in Adobe Granite CSRF filter
– enabling ‘allow empty’ and removing ‘POST’ method in Apache Sling Referrer filter
(followed this link : http://sourcedcode.com/how-to-make-simple-http-post-methods-in-aem-with-a-http-rest-client/ )
So, now with all the defined users can access the servlet, want to restrict it to only particular user/group.
Let me know if this is possible at all. I recently started working with AEM.
Again, Thank you
LikeLike
If your servlet is defined for some path – eg- /bin* you can restrict that path in permissions settings (useradmin) in AEM for that user group.
LikeLike
Hi Hashim,
Greetings,
I have a scenario where I need to delete more than 30000 nodes under etc.
I am using a servlet to delete them. But It is not working properly. Could you please suggest which choice works here to delete such a large amount of nodes in PROD environment?
Thanks
LikeLike
in dam assets when I m trying to open a folder it throws null pointer exception and status code is 500 server error, even resource type of folder is OdrerdFolder only . can u help me with this.
LikeLike
Hi Hashim,
I Am “facing Nullpointer exception” in the subfolder of DAM Assets even resource type is OrderedFolder, can u you please help me with this.
one more problem I am facing when I navigate folder to folder in dam assets a few subfolders I can’t access it throws an error ” Failed to load data ” but directly through URL I can open the folder, in it a subfolder throws Null pointer exception.
LikeLike
I have faced a different issue on AEM6.1 author. New folder and few web pages were added in author and published to 3 production servers.All changes looks good on publish but suddenly in author the added pages were missing. No logs found for deletion. But we see high CPU utilization (to 91%). in author. Another issue noticed was , logs files were also missing for few dates on author box.During the same time modified and published changes were reverted in Author but were good in publish environment. Also during/before that time server was too slow to open the dam content and bounced the author. Is there any way to find reason for missing pages and reverted web pages on AEM author
LikeLike
Hi Hashim,
when i try to access https://domain.com it is supposed to redirect to https://www.domain.com but iam landing on redhat server error page. I tried implementing the rewriteconditions to the redirect server. But it dint help. Can you please let me know the quick fix?
Thanks in advance!
LikeLike
Hi Hashim,
We are upgrading from AEM 6.1 to AEM 6.4 version, on env we are doing inplace Upgrade that helps in keeping the old references to /etc directory.
My question :- if we do fresh installation using AEM 6.4 jar, is it possible to maintain the old references to /etc directory because on my local(did fresh installation) on click of commerce folder navigating to the “/var/commerce/products” page instead of “/etc/commerce/products” & still we are keeping our old commerce data in the /etc directory.
LikeLike