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,
I’m extending ‘com.adobe.cq.sightly.WCMUsePojo’ class and using request session in it to set some properties on content node (current resource). so I want to logout my session after performing that operation.
I’m doing it using below code snippet.
if(null != requestSession) {
requestSession.logout();
}
But while doing it I’m getting below error.
org.apache.sling.engine.impl.SlingRequestProcessorImpl service: Uncaught SlingException
java.lang.IllegalArgumentException: javax.jcr.RepositoryException: This session has been closed.
So is that not necessary to do session logouts in ‘WCMUsePojo’ extending classes? If we don’t do it, will Sling take care of it automatically?
Thanks in Advance Hashim…
Thanks,
Srikanth
LikeLike
Yes , its not needed if WCMPojo classes. If you are explicitly creating a session / resourceResolver then it should be closed. Here string will take care of it.
LikeLike
Awesome! Many thanks for the prompt reply, Hashim.
LikeLike
You’re welcome !
LikeLike
Is there any way to get Mock Object of FrameworkUtil. We are using AEM mock for unit testing. Below is method :- public static T getServiceReference(Class serviceClass) {
T serviceRef;
BundleContext bundleContext = FrameworkUtil.getBundle(serviceClass).getBundleContext();
ServiceReference osgiRef = bundleContext.getServiceReference(serviceClass.getName());
serviceRef = (T) bundleContext.getService(osgiRef);
return serviceRef;
}
While testing i’m getting null pointer exception on FrameworkUtil.getBundle(serviceClass). Can you please help me here.
LikeLike
Have you checked the usage given here – http://wcm.io/testing/aem-mock/usage.html
It gives a different way to retrieve a service. You can try that snippet.
LikeLike
HI Hashim,
May I know how many preparation months it would take to give AEM developer exam if there is no base knowledge about AEM with 1 year of JAVA knowledge.
LikeLike
Hi,
For AEM developer exam you need to know AEM development first, as the questions asked there are scenario based and not all of them could be answered just by cramping up things. I would suggest first gain some experience via few projects and then attempt for the exam. I cant time base it in general.
LikeLike
Hi Hashim,
Need your help on the Dispatcher Configuration setup. I’m trying to configure Dispatcher for the first time. I’ve followed all the instructions given on the internet and I’m able to cache my Sample Website for now but it’s working as expected in IE Browser only. When I open the same page on Chrome, it’s not getting cached. Is there any setting that I’ve to explicitly add to make it work in Chrome?
Steps followed:
–> Installed Apache httpd Server (on 8081 port)
–> Installed Dispatcher
–> Made all the requireed changes in httpd.conf and dispatcher.any file.
Also, Is it mandatory to logged on AEM Publish instance when we’re hitting a page via Dispatcher? Like, I’m accessing this page “http://localhost:8081/content/geometrixx-outdoors/en/women.html” when I’m logged in AEM Publish Instance, it’s working fine but when I’m logged out from AEM publish Instance and trying to hit this URL, I’m getting an error which says : Bad Gateway The proxy server received an invalid response from an upstream server.
LikeLike
Change the dispatcher logs to Debug to identify whats the issue. I don’t think there should be any browser specific caching configurations in Dispatcher configs. There isnt any specific dispatcher configurations for chrome. Logs would give you better idea.
Second part, its not necessary to login to Publisher if you are accessing a public page via Dispatcher. Do check your allowauthorized flag and if the page needs a signin to display. Check dispatcher logs to debug more.
LikeLike
Hi Hashim ,
On CQ 5.4 we are facing an issue of CQ author portal unavailability,however the author process is running fine. When we checked the server.log due to a tree replication(bulk content deployment) the issue occurred
The log was like this – 30.08.2017 03:01:48 *WARN * servletengine: Thread pool limit reached.
I just went thru this https://helpx.adobe.com/experience-manager/kb/ThreadPoolLimitReached.html link where they have mentioned that in such situations we can increase the default value of
128
Can you put some thoughts on the same . Can we increase the count, if yes what is your recommendation.
Regards
NavinKumar KB
LikeLike
Hi Naveen,
It means that in your instance simultaneous threads are running which is reaching the limit of the instance. In earlier versions of AEMs this was an issue which they improved in future versions. Take frequent thread dumps to identify whats the root cause for this. Also check if some schedular / workflow process / constant JCR changes are happening in your instance. There could also be Lucene indexing happening in backend due to constant content changes . Thread dumps / JVM profiler can give you a better picture.
LikeLike
Thanks for your inputs Hashim . Will look up these pointers you made
LikeLike
Hi Hashim,
I am getting an issue after mounting a dispatcher on Author instance.
After logging on author dispatcher amd creating a new page and using few components(like image )
Once this is refreshed ,my components configured on page are not rendering until and unless i clear my browser cache.
I want to tell you that i havent configured dispatcher flush agent because i am not caching /content.
I am only caching lib, app and etc
Specially i am targeting js and css files.
Can you please help me here?
LikeLike
Hi Manish,
You should create appropriate caching rules for Dispatcher cache . If the *.htmls are getting cache there should be something wrong with the configurations. Check the dispatcher folder and dispatcher logs to debug further.
LikeLike
Hi Hashim,
i am trying to create Livecopy using Blueprint facility for in my project. While i am creating live copy using New Site option, selected Blueprint and langauages not showing up, navigate next step and selected chapters , selected live copy tick and roll out and finish. after this livecopy is not creating at all.
what could be the problem? there is no language to select, is it causing the issue? could you please help on this?
LikeLike
Hi, I cant follow the issue here. You can follow the steps mentioned in the documentation https://docs.adobe.com/docs/en/aem/6-2/administer/sites/msm.html
LikeLike
Hi Hashim,
i am developing a search component in our project. Our requirement is not to show some content pages /specific content when we do search. So how can i exclude that content from searching .
Thanks in advance
LikeLike
Hi, It totally depends on the query which you are using. I cant comment vaguely in this.
Check this https://stackoverflow.com/questions/22510025/how-do-i-add-a-where-not-to-a-querybuilder-query
Try to google more about it.
LikeLike
Hi Hashim,
Can you suggest some possible ways of finding all components names on a page.
LikeLike
Hi, You can search all the children nodes on a page and for every sling:resourceType property , go to that node and pick Component Name. This can either be done by Java class or simple Groovy script.
LikeLiked by 1 person
Hi Hashim,
How to reduce the dependency on external systems?
Thanks,
Kiran
LikeLike
Hi,
didnt get which External systems ? Please explain more.
LikeLike
Hi,
I have a doubt in the below question. Please help me out
There is an external dependency that you have included in your pom.xml file. But when you install the bundle in felix console, bundle is not active. To include the classes from the external dependency, which one of the below will you use ?
LikeLiked by 1 person
Hi Hashim,
The size of Author and Publish instances are increasing drastically, right now 107 to 110 GB..
I used to perform offline compaction which ealier used to free up a lot of space, but it seems to free only about 10 GB now.
What might be the cause and if possible, a solution for this?
-Ekta
LikeLike
Hi Ekta,
Can you try to perform Audit , Workflow and Version Purgings ? And then perform and Offline Compaction. Try to identify what is taking so much space /etc/reports/diskusage.html?path=/content/dam.
Follow this link for further debugging and optimization steps.
https://hashimkhan.in/2015/10/07/guidelines-for-performance-optimziation/
LikeLike
Hello, we have problem w CFP 8 installed on AEM. It changes DOM structure our custom multistep form so that we can’t see tabs (LIs in OL) anymore, just a list… What should be the best approach to solve this issue? Introduce new class and correct styles or amend JS files? Many thank for your answer.
LikeLike
Hi Piotr,
Ideally a new Service pack MUST not change the dom structure , unless you are using OOTB things. If it changes anything on your existing code, you can raise a Daycare ticket for this anomaly.
Modifying HTML via JS is never a good idea. You should the CSS files to reflect the new changes.
LikeLike
Thank You very much for your quick answer.
LikeLike
Hi Hashim,
We ran online garbage collection on our Author but after the restart author is not starting. The log files say “Segment not found”. I tried backing up from the latest good revision(Source – https://forums.adobe.com/thread/2321917), but the search ended in “No good revision found”.
Please suggest what needs to be done in this case.
We’re using Adobe Experience Manager, Version 6.2.0.SP1-CFP4. Thank you.
– Ekta
LikeLike
Hi Ekta,
Have you tried the Repository Consistency Check ? Its difficult to analyze the situation without logs. I would suggest to create a DayCare ticket for this issue.
LikeLike
This question is regarding handlebars login component in AEM 6.3.
In the file(/libs/social/console/components/hbs/login/login.hbs),
there are parameters like redirectUrl and loginUrl. Now from handlebars syntax,
we understand that these are handlebar expressions whose data will be dynamically replaced,
but from where the data is getting populated. looks like there is some json binding.
Could you please give clarity if you have worked on handlebars?
LikeLike
have you checked the clientlibs associated with the component ? /libs/social/console/components/hbs/login/clientlibs/login.js
LikeLike
while installing package, i’m getting “Package file parameter missing” in localsetup? how to resolve it?
LikeLike
Hi,
Please make sure the /tmp directory is present on your instance. Check these links:
http://chandrashekar-naik.blogspot.com/2016/02/package-file-parameter-missing-during.html
https://forums.adobe.com/thread/2335987
LikeLike
Hi Hashim,
i Need to upload package on local AEM setup.
im not able to upload package on console bcoz of it is restricted on network level.
So im dropping package on INSTALL folder in CRX_QUICKSTART…..
Im trying to upload my DAM package — (package 1-6GB, package 2-6GB) and dropped it to INSTALL folder…but its not reflecting in console?small packages are reflecting ..please advice.
LikeLike
Hi Gopi,
If you have admin access to the environment, Use curl to build and install large packages. Check this script for help https://github.com/hashimkhan786/aem-shell-scripts/blob/master/aemPackager.sh
LikeLiked by 1 person
thanks alot hashim
LikeLike
im getting below when i upload a package(6GB).But im able to upload small packages,i have attached the result on below:
C:\Users\gopinath.m>curl -u admin:admin -F file=@”C:\Users\gopinath.m\Downloads\
mph_Dam2.zip” -F name=”mph_Dam2″ -F force=true -F install=true http://localhost:
4502/crx/packmgr/service.jsp
+————+—————————————–+
| Arguments | Comment |
+————+—————————————–+
| cmd=help | print this help |
+————+—————————————–+
| cmd=ls | print a list of all packages |
+————+—————————————–+
| cmd=rm | remove a package |
| name | package name |
| [group] | group name (optional) |
+————+—————————————–+
| cmd=build | build a package |
| name | package name |
| [group] | group name (optional) |
+————+—————————————–+
| cmd=inst | install a package |
| name | package name |
| [strict] | true to fail on error |
| [group] | group name (optional) |
+————+—————————————–+
| cmd=uninst| uninstall a package |
| name | package name |
| [group] | group name (optional) |
+————+—————————————–+
| GET | download a package |
| | (content-disposition header contains |
| | the correct filename) |
| [cmd=get] | optional |
| name | package name |
| [group] | group name (optional) |
+————+—————————————–+
| POST | upload a new package |
| file | package to upload |
| [name] | optional name |
| [strict] | true to fail on install error |
| [install] | automatically install package if ‘true’ |
+————+—————————————–+
ok
WHEN I UPLOAD SMALL PACKAGE:
C:\Users\gopinath.m>curl -u admin:admin -F file=@”C:\Users\gopinath.m\Downloads\
mph_Dam1.zip” -F name=”mph_Dam1″ -F force=true -F install=true http://localhost:
4502/crx/packmgr/service.jsp
my_packages
Mph_Dam1
Mph_Dam1.zip
9950
gopinath.m
gopinath.m
null
Installing content…
Creating snapshot for package my_packages:Mph_Dam1
A META-INF
A META-INF/vault
A META-INF/vault/config.xml
A META-INF/vault/filter.xml
A META-INF/vault/nodetypes.cnd
A META-INF/vault/properties.xml
A /.content.xml
A /content
A /content/.content.xml
A /content/dam
A /content/dam/.content.xml
– Aggregation status: 2 of 0 prepared, 1 collected
A META-INF/vault/definition/.content.xml
Collecting import information…
Installing node types…
– rep -> internal
– nt -> http://www.jcp.org/jcr/nt/1.0
– sling -> http://sling.apache.org/jcr/sling/1.0
– sling:Folder
– sling:OrderedFolder
– sling:Redirect
– sling:Resource
– rep:RepoAccessControllable
Installing privileges…
Importing content…
U /
– /content
– /content/dam
A /content/dam/mphasisblog-lkeue
A /content/dam/mphasisblog-lkeue/resource-assets
A /content/dam/mysite-iv4kr
A /content/dam/mysite-iv4kr/resource-assets
A /content/dam/plainsite-civtt
A /content/dam/plainsite-civtt/resource-assets
saving approx 7 nodes…
Package imported.
Package installed in 281ms.
ok
LikeLike
Hi,
If the command is working for small packages it should work for large packages too. Check the Logs of the AEM instance while using this command for large packages.
LikeLike
HI Hashim,
We have created some custom metadata fields by touch UI by creating DAM metadata schema and applying schema to our client specific folder. But we are unable to do the same for classic UI. Unable to create metadata properties for DAM assets in classic UI. Below link is not giving more information
“https://docs.adobe.com/docs/en/cq/5-6-1/dam/metadata_for_digitalassetmanagement.html#Creating New Metadata Property for Assets”
Can you give info on how to create DAM metadata properties in Classic UI and applying to client specific folder. (In addition to existing fields, needs to add additional fields. I tried Metadata Template in classic UI , but of no use.)
LikeLiked by 1 person
Also I didn’t find where the node will store, if we apply a DAM metadata schema to a specific folder in Touch UI, can I know is this info will be stored as a node in DAM content anywhere ?
DAM Metadata schema usually stored at “/conf/global/settings/dam/adminui-extension/metadataschema”
LikeLike
Hi,
That information is stored in the dam folder’s jcr:content where you have applied that schema as a property “metadataSchema” pointing to that schema – /conf/global/settings/dam/adminui-extension/metadataschema/newSchema
LikeLike
Thanks Hashim !!
LikeLike
I dont think there is a way to create metadata-schema for classic UI for specific content folder. https://forums.adobe.com/thread/2336898 . There is a plan to decommission it in future, so all development activity is happening at Touch UI only.
LikeLike
HI Hashim,
I want to customize the “Start workflow” wizard while starting a workflow in Touch UI. needs to add more additional fields and wants to save them in metadata . Can you guide me how to customize the “Start Workflow” wizard to add new fields in AEM 6.3 Touch UI, and how to apply this customization to our client specific workflows only ??
Thanks & Regards,
Ramesh
LikeLiked by 1 person
Hi,
Please take a look at these paths for such customizations :
/libs/wcm/core/content/editor/jcr:content/content/items/content/content/items/startworkflowmodal
/libs/cq/gui/components/authoring/workflow/startworkflow
Make sure you override the libs files into your apps folders to change anything .
LikeLiked by 1 person
Hi Hashim,
In extension of above scenario, can I know how to control form fields based on selection of a value in dropdown of another field. Actually I found an article in below link which we will be used for controlling fields based on our selection in touch UI dialog (cq:dialog). But in html page, when we are working on form, how can we control some widgets to show and hide based on our selection in dropdown ?
Example : In sites after selecting a page -> Create workflow -> In “Create workflow” page, If we select our project related workflow from dropdown, I need to display two more fields otherwise I want to hide them.
The below links explains similar scenario under Touch UI dialog (cq:dialog) but not in Form.
https://helpx.adobe.com/experience-manager/using/dynamic_touchui.html
Please guide !!!
LikeLike
Hi,
Actually I need some links through i should get prefer for aem certification exam code:9a0-384
LikeLike
Hi,
docs.adobe should be the latest source as they keep on changing the question patterns. You can also refer to https://hashimkhan.in/aem-adobecq5-certification-question-bank/ and questions under Ask Me section for some practice.
LikeLike
Hi Hashim,
We are using runmode (author, author.prod, author.qa, similarly for publish too) configs(corresponding to osgi component) in our project. When I checked OSGI console, some configs are not bound and default values (which I mentioned in java component code) are displayed but not environment specific. Also, one more thing I observed is, some config whose values are displayed properly according to environment, and If I change any of its value in code and redeploy. It gets screwed and newly modified value is not displayed.
Any idea why is this happening only for few configs.
Thanks in advance
LikeLike
Hi,
For Runmode based configuration policies use appropriate annotations – @Component(policy=ConfigurationPolicy.REQUIRE
Whenever you will change a Configuration policy for an environment manually , it wont be updated by a code build, unless you delete the node. Check out Best practices https://blog.kristianwright.com/2013/08/21/aem-best-practice-osgi-configurations/
LikeLike
Its really helpful. Thanks Hashim.
LikeLike
What is the difference between ResourceResolver and ResourceResolverFactory interface? If we use both the interfaces to access the resources, hence in which scenario we should use these interfaces?
LikeLike
Hi Hashim,
I have 1 year experince in AEM but i havent worked on workflows and core development stuff.Could you give me some pointers i want to self learn these stuff like using spring as service layer and devloping components.please help me.
Thanks in advance.
thanks
LikeLike
Hi,
Do checkout the official documentation , Code with Me and ACS Code Samples to understand and use these features.
LikeLike
Hi,
Please consider reading CQ Gem sessions & docs.adobe.com for the basics on these topics.
LikeLike
Hi Hashim,
Can you provide some guidance on creating Lucene index properties for dynamically created pages from code on which we don’t have control.
In our application, we create cq pages dynamically from the code and those pages having child pages nested upto 4-5 levels with specific nodes under jcr:content as well. I want to add indexing for one of the properties in these pages. How can I achieve it?
LikeLike
Hi ,
As long as know the property name, you can define a Lucene / Property index for that path + property combination. Lucene indexes would take some time to refresh automatically while Property index refreshes at the time of page creation.
LikeLike
Hi Hashim,
Can I know how to control form fields based on selection of a value in dropdown of another field. Actually I found an article in below link which we will be used for controlling fields based on our selection in touch UI dialog (cq:dialog). But in html page, when we are working on form, how can we control some widgets to show and hide based on our selection in dropdown ?
Example : In sites after selecting a page -> Create workflow -> In “Create workflow” page, If we select our project related workflow from dropdown, I need to display two more fields otherwise I want to hide them.
The below links explains similar scenario under Touch UI dialog (cq:dialog) but not in Form.
https://helpx.adobe.com/experience-manager/using/dynamic_touchui.html
Please guide !!!
LikeLike
HI Hashim,
can you please help me on below scenario. I have overridden the “create workflow” wizard from
/libs/cq/gui/content/common/startbulkworkflows to /apps/cq/gui/content/common/startbulkworkflows .
I added three new properties in the form of wizard and when we are trying to initiate workflow via “Create workflow” on CQ pages, the workflow instance metadata doesn’t stored the newly added three properties data, means those custom properties are not saved under metadata of workflow instance.
Can you help on where that data is missing, do we need to catch those custom properties on any jsp after posting the form ? or how the scenario is ?
Please guide !!!
Regards,
Ramesh Babu
LikeLike
Ideally, it should store the metadata how you are doing it. But if that doesn’t work you can always store the properties on the page jcr: content and retrieve in further workflow steps as per need.
LikeLike
Hi Hashim,
Could you tell me how to use sling models in retrieving multiField values stored as nodes
Thanks
LikeLike
Sling Models might not work if the properties are stored as nodes, but it should work if you change your multifield and store properties in a string array. Alternatively, you can use the Post Construct in Sling model to retrieve the node properties instead of direct injection.
LikeLike
Hi Hashim,
I have a requirement of hiding assets which are locked by AEM workflow , for a particular user or user group .
Could you please suggest any solution ?
Thanks
LikeLike
Hi,
Once you lock an asset there should be a change of property on that node. “jcr:mixinTypes = mix:lockable” You can utilize that property to identify that asset from visibility based on that particular User session.
Alternatively what I can think of is you can store that user or user group on that asset properties and while showing that asset in damadmin, perform a check if that user group / user has particular permission or not.
LikeLike
Hi Hashim,
I have a requirement of hiding dam assets for particular user or usergroup .which is locked by aem workflow .Could you please suggest any solution to this.
LikeLike
Shared some idea in above post ^
LikeLike
Hi Hashim,
I have created a simple custom component with dialog having three text fields, As we know the data authored will store under content.
Now the question is how to replicate the data stored under content to publish environment automatically using sling events and sling jobs ?
Can you please help me with this ?
LikeLike
You can create a Workflow Launcher which will get trigger if there is a change in your component properties. That workflow can initiate a publish event for that page. http://blogs.adobe.com/contentmanagement/tag/workflow-launcher/
LikeLike
Hi Hashim,
I have created a custom predicate to filter out assets/pages in the pathbrowser. The requirement is i need to get the current page/resource in the osgi service[extending the AbstractNodePredicate] so that based on path the query results will be filtered. Is there any way to get the page/resource/request in the service.
LikeLike
Hi,
In the OSGi service, you can get the reference to repository and resource resolver object. Now it depends on how are you using that service – by some helper class / WCMUsePojo class/ Servlet. From those classes, you can pass the resourcePath as a parameter.
LikeLike
Hi Hashim,
I want to create a second website in my crxde with different UI. And access the bin/nodeUtility content of the first site’s pages which was already created.Can this be done with MSM.If not what is the option?
LikeLike
Hi,
If both the sites land in one AEM environment, there shouldnt be a problem to access /bin paths. You might not need any MSM for this. Just make sure the dispatcher filters are correct for both the sites vhosts.
LikeLike
Hi Hashim,
I have created a touch UI dialog which populates dropdown values using datasource. But I don’t want to have ‘n’ no. of datasources doing the same logic, wanted a single datasource and pass some parameter/a key to that datasource ?
Could you please help.
LikeLike
Hi,
I think you can do so, by passing a global variable on pageload to identify that datasource. That global variable you can change based on your component html/jsp logic.
LikeLike
Issue: Videos are downloading instead of playing directly in browser.
Videos from dam path are downloading when accessing them using dispatcher but if we access same videos with publisher directly it is playing perfectly in browser.
As per below helpx URL we added all client headers in dispatcher except “Accept-Ranges none”. We are not sure where to add this entry. when I try to add it in httpd.conf top and it is saying syntax error.
https://helpx.adobe.com/experience-manager/kb/Omitting-Content-Length-header-breaks-video-playback-in-some-browsers-AEM-Dispatcher.html
LikeLike
Hi Hashim,
i have one requirement related RTE.
I have list of some unicodes corresponding to icons [Ex: u23\12 tends to some glyph icon]. I need to add these all unicodes as a dropdown in RTE and enable to include where i want in my RTE text. is it acheivable? if yes, can you tell me how this can be done? or any aleternative? please suggest
Thanks
Mujafar
LikeLike
Hi,
Please check out this link https://helpx.adobe.com/experience-manager/6-3/sites/administering/using/rich-text-editor.html#SpecialCharacters
LikeLike
Hi Hashim,
I have a requirement to restrict Users from dragging and dropping an image which exists outside of the DAM.For this purpose i am using this property: allowUpload=”{Boolean}false”. But when i drag and drop an image from my local, it is getting uploaded there and it is coming on page too.
Thanks
Ravi
LikeLiked by 1 person
Hi Ravi,
You might be doing something wrong in the node structure in the dialog. Check out this blogpost https://forums.adobe.com/thread/2328229 . Its fairly simple to disable the upload.
If that doesnt work try this http://experience-aem.blogspot.com/2016/06/aem-62-touch-ui-disable-upload-of-file-in-granite-fileupload-widget.html
http://aempodcast.com/2017/aem-interface/asset-file-upload-prevention/#.Wlkqz5M-fUI
LikeLike
Hi Hakim ,
I am trying to use Prosper to mock AEM jcrcontent for my test cases and facing issues with it .Do you suggest me to go with Propser or can you please share some tutorials for mocking using Spock framework.I did some reaserch but all are ending up in not able to mock JCR nodes.You advice is much appreciated.
LikeLike
Hi,
You can check out this GITHub link for Prosper https://github.com/OlsonDigital/prosper or could refer to other testing frameworks for AEM –
https://forums.adobe.com/thread/2339323
LikeLike
Hi Hashim,
I want to know how we can monitor user activities in aem when they are working on content and assests like edit, move, delete and rename.
I seen there is 2 use cases to track the user activities
1. In crx/de we can get the data from var/audit
2. We can enable audit log from osgi config
I want to know if we have any other way to monotoe the activities .
Please let me know if above 2 situation are true or nor. Can you give me an idea about this problem.
LikeLike
Hi,
All these User-based activities are stored in var/audit nodes if Auditing is On for the environment. You might have to check how you want to read the data. One way could be using Queries – either a Java Class or Groovy. Another approach would be to use AEM Reports for User management.
You can also fetch the reports from Audit Logs.
https://helpx.adobe.com/experience-manager/6-3/sites/administering/using/reporting.html
LikeLike
Hi Hashim,
I am using Font Awesome icons from acs-aem commons. I am able to add these icons to my widget and using perfectly. But if i want to use or include in rich text editor how can i do? i want to add this icon in my rte text.
Thanks
Mujafar
LikeLike
Hi,
I think you might have to explore this a little by adding a Class for every Font Awesome Icon and giving an option to the content authors to choose icon-class and place in RTE text. Then you might have to create a CSS file to place an icon for that class in richtext.
ACS provides it to add it separately. https://adobe-consulting-services.github.io/acs-aem-commons/features/ui-widgets/icon-picker/index.html
LikeLike
Hi Hashim,
I want to know how we can monitor user activities in aem when they are working on content and assests like edit, move, delete and rename.
I seen there is 2 use cases to track the user activities
1. In crx/de we can get the data from var/audit
2. We can enable audit log from osgi config
I want to know if we have any other way to monotoe the activities .
Please let me know if above 2 situation are true or nor. Can you give me an idea about this problem.
LikeLike
Answered this above. You don’t have to post repeatedly. The comment goes through the review process before getting posted.
LikeLike
Hey Hashim,
I have a sling servlet which works fine in the author instance but returns 404 in the publisher instance, I am using AEM 6.3. I have been blocked on this for a while, can you please help.
Regards,
Prakash Iyer
LikeLike
Hi Prakash,
Are you able to see that sling servlet in OSGi components? Are there any loggers on Publish? It could be a permissions issue too.
You can also use AEM debugging mode to check if the flow of code reaches your servlet.
Try to check these for debugging.
LikeLike
Hi Hashim,
Can you have me to find solution to show width and height dimensions when cropping image (when we select via Free hand, or the ratios)? How can I do that if I don’t want to customize AEM libraries?
Thanks a lot,
Lena
LikeLike
Sorry for my typo.
It is related to Assets and I use AEM 6.2
LikeLike
Hi Lena,
Have you tried using the OOTB Image-Sightly component /libs/wcm/foundation/components/image?
It has a functionality for image crop which stores the 4-dimensional values as a comma-separated property. Try to use that component in Touch UI mode and Classic mode.
LikeLike
This has some screeshots too https://forums.adobe.com/thread/2324289
LikeLike
Hi Hashim,
Thanks for your response but I have to show width and height dimensions exactly in /mnt/overlay/dam/gui/content/assets/assetedit.html when cropping image. I cannot use image component instead of it. I think I have to separate Assets. Is it right? And how can I do this?
LikeLike
Hi,
We have to link an OSGi service to https://mobilemarketing.adobe.com for implementing Push Notifications and have to pass Json data to the same. Please let me know how can I achieve this.
Thanks,
Ekta
LikeLike
Hi, Are you looking for this ? https://helpx.adobe.com/digital-publishing-solution/help/push-marketing-cloud.html
LikeLike
Hi Hashim,
Do we know the file which makes the post call when we add member to users impersontors list in useradmin.
https://stackoverflow.com/questions/48811957/aem-cq-useradmin-adding-member-to-users-impersonators-list-doenst-retains-the-prev members in the list
LikeLike
Hi,
In all these cases you can find out the servlet from this tool /system/console/servletresolver
In this case, as it uses impersonator.json you will get this –
com.adobe.granite.security.user.internal.servlets.ImpersonationServlet
org.apache.sling.servlets.get.impl.DefaultGetServlet
org.apache.sling.jcr.webdav.impl.servlets.SlingWebDavServlet
LikeLike
Hi Hashim,
I am working on dialog, if user click on addfield button, should be added items on the dropdown list. But in my case it doesn’t show up first time. it is showing if i open dialog 2nd time.
Touch UI multifield component.
LikeLike
Try to added console loggers to debug the problem. Wont be able to help much without seeing the code.
LikeLike
Hi Hashim,
iam new to AEM,
using AEM 6.1, iam unable to publish the pages even my default replication agent is configured correctly.
getting queue is blocked.
i tried all mentioned in https://helpx.adobe.com/experience-manager/kb/replication-stuck.html
if i click test connection iam getting:Replication test to localhost:4503/bin/receive.
in logs i can see this error:ERROR – publish : Error during replication com.day.cq.replication.ReplicationException: Unable to replicate content with no transport handler. Check configuration.
could you please help here.
LikeLike
Hi, It seems like some issue with the configuration. If the test connection doesnt work , pages wont be published.
Try to fix configurations first https://helpx.adobe.com/experience-manager/6-3/sites/deploying/using/replication.html
LikeLike
Hi Hashim
I found this blog interesting, thought to check my query on this. Actually , I have two groups and each has one member. Each group has its own branch access and denied of another. When user of one group tries to access resources of another group , am getting 404 and user has succesful access to resources which belongs to his group. Is this expected behavior? 404 instead of 401 or 403? I posted the same thing on blog,
https://forums.adobe.com/thread/2322366?start=0&tstart=0 but no insight if the behavior is expected or not.
LikeLike
Hi Ritu,
By Default AEM error handler would give a 404 for all errors, you should customize the 404.jsp to send a code 403 if its a forbidden access request. The code piece should be added externally to that.
LikeLike
Thanks Hashim for the quick response. But i wonder to catch 403, i should have http response code as 403 atleast otherwise how would i identify its a forbidden request and not 404. I think for this i also need to apply the hack mentioned in the other blog i.e to check with user first followed by admin login and if admin can access that page that means its a 403 and not 404. Do you think any other clean approach rather than this hack?
LikeLike
Hi, Instead of that more cleaner approach would be to use UserManager API in 404.jsp to send the correct response code if the User doesnt have permissions for a particular page.
https://helpx.adobe.com/experience-manager/6-3/sites/administering/using/security.html
You might not need to check admin permissions, just 2 things – 1. page exists 2. current user doesnt permissions for that page. If both of them satisfy send a 403
LikeLike
Thanks Hashim! Will give it try :)
LikeLike
i am updating uber-jar for AEM6.3
but getting error as
Could not find artifact com.adobe.aem:uber-jar:jar:6.3.0 in adobe-central (http://repo.adobe.com/nexus/content/groups/public
mvn -U clean update
com.adobe.aem
uber-jar
6.3.0
provided
https://repo.adobe.com/nexus/content/groups/public/com/adobe/aem/uber-jar/
Any suggestions for update uber-jar
LikeLike
Hi, Update to the latest version of maven, and then try to build. Make sure to follow these steps https://helpx.adobe.com/experience-manager/6-3/sites/developing/using/ht-projects-maven.html#How%20to%20I%20use%20the%20UberJar?
LikeLike
Hi Hashim,
I cam here as another techie looking for answers. And I have to thank you from the deepest corner of my heart for all the amazing work you are doing!! You’re helping out random people painstakingly. This shows your mettle, man. You’re awesome!! :)
Second, I’m stuck with this issue-
i have a custom column control.But whenever I click on its paragraphs, a pop up appears on the top “ERROR Paragraph move operation failed”.
REMEMBER, I only CLICK on the paragraph. I dont move the components.
The console shows a 500 ERROR.
Logs-
POST /content/customerportal/oc/au/en/medicine-and-resources/cotellic/jcr:content/columncontrol/par_1/ HTTP/1.1] org.apache.sling.servlets.post.impl.operations.ModifyOperation Exception during response processing.
javax.jcr.RepositoryException: Cannot move node at /content/customerportal/oc/au/en/medicine-and-resources/cotellic/jcr:content/columncontrol to /content/customerportal/oc/au/en/medicine-and-resources/cotellic/jcr:content/columncontrol/par_1/columncontrol
Any suggestions on how to work on this?
LikeLike
Hi,
From the error logs it seems like there is some problem with the move function. Check the node structure and its permissions for the user trying move operation. Try to add console logs in your custom column control.
LikeLike
Hi Hashim,
Thanks for the reply :)
It definitely was a problem with the node. More specifically, node property.
In the cq:editConfig nod, I had misspelled the word “move” . Hence the error.
Thanks for all your work man :)
Keep being awesome!
LikeLiked by 1 person