I am using SDL Tridion 2011 Sp1 and SmartTarget 2010. I am facing some error in SmartTarget. SmartTarget is not working perfectly. I am unable to find the reason. When I checked the logs I found the following information about SmartTarget.

ERROR TP-Processor3231 org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/].[Faces Servlet] - Servlet.service() for servlet Faces Servlet threw exception java.lang.IllegalArgumentException: Claim is read-only: taf:request:headers at com.tridion.ambientdata.claimstore.ClaimStore.put(ClaimStore.java:89)

Then I googled web for this error. I came to know that we need to check cd_ambient_conf.xml where all cartridges are defined.

My cd_ambient_conf.xml is like this.

<?xml version="1.0" encoding="UTF-8"?>
        <Cartridge File="/smarttarget_cartridge_conf.xml" />
        <!--<Cartridge File="/audiencemanager_cartridge_conf.xml" />-->
        <Cartridge File="/session_cartridge_conf.xml" />
        <Cartridge File="/appuserdata_cartridge_conf.xml" />
        <Cartridge File="/location_cartridge_conf.xml" />

Except smarttarget_cartridge_conf.xml and session_cartridge_conf.xml, I am able to locate all files in my web project.

I am not sure if missing of file smarttarget_cartridge_conf.xml is causing the problem.

Can some one tell me how to locate and fix the issue?

  • smarttarget_cartridge_conf.xml should be in the SmartTarget jar. If the SmartTarget jar would not be found the ADF would complain about in the log.
    – Jan H
    Jul 8 '13 at 19:03
  • You could try to pin down what cause this error. Do you have the same in a par which does not use the SmartTarget taglib or SmartTarget API. Does the same issue occur?
    – Jan H
    Jul 8 '13 at 19:16
  • Just in case you missed it the first time: SmartTarget 2010 does not support Tridion 2011 SP1. You need to upgrade. It might not be related to this particular error message, but you are likely to run into other issues by running an incompatible version that was created for Tridion 2009 SP1. Jul 10 '13 at 9:00

I have seen similar ADF issues before but not this specific one. Try the following for troubleshooting.

  • The smarttarget_cartridge_conf.xml andsession_cartridge_conf.xml do not need to be in the resources folder of your project or classes folder of your web application. They are provided in the smarttarget-cartridge.jar and session-cartridge.jar. Like Peter pointed out, those libraries have to be in on of the lib folders. Could you verify this? ADF would write a different error message in the log if it cannot find those files.
  • Does this issue occur on a page with no SmartTarget tags or API usage? Probably it will occur on any page, even if it does not interact with SmartTarget.
  • Could you disable (comment out) all cartridges in the ADF configuration? Chances are either the problem still occurs (not related to the cartridges) or is resoved (and the cartridges might be the one to blame.
    • If the problem still occurs, it might be some interaction between your web application and ADF. Try reproducing the issue with a minimal setup, an empty .jsp page and no filters exept the ADF one for example.
    • More likely the issue is resolved after disabling all cartriges, so enable them one by one again and see what causes the issue.

The claim "taf:request:headers" is set in the ADF itself, you don't need one of the configured cartridges to use this claim. That's why I think it is worth trying to eliminate the SmartTarget functionality on the page and the cartridges.

  • Thank you for the response. I will debug this and add my comments.
    – Patan
    Jul 10 '13 at 5:04

I haven't seen this error before, but it appears that something is trying to change the request headers in the Ambient Data Claim Store after they have been set with the initial value -- which is not allowed. It could be one of your cartridges or perhaps a filter/HTTP module/web page.

That said, you should know that SmartTarget 2010 only supports SDL Tridion 2009 SP1. You should upgrade to SmartTarget 2011 SP1 to have it work with your version of Tridion.

(P.S. the XML files are inside of the relevant JAR files (e.g. smarttarget_cartridge.jar) so as long as you have those in your lib folder it should be fine)

  • Thank you for the response. Recently our web urls have been changed. Does this have any impact on this.Since then we are smart target is not working properly. Say for ex our URL /abcd/test/page.html changed to /test/page.html
    – Patan
    Jul 8 '13 at 12:45
  • How is this url change implemented? And, do you use any other filters/HTTP modules except for the ADF filter/ADF HTTP module?
    – Jan H
    Jul 8 '13 at 22:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.