Try Troubleshooting the XPM issue by following steps:
- To ensure Installation done with correct Jars and version of the preview service and session-content services and register with discovery double check the port and credentials informations are correctly setup.
- To ensure the following config sections are present
In Preview Service side:
cd_stograge_config.xml - to ensure this following sections are present.
<ObjectCache Enabled="false"/>
<StorageBindings>
<Bundle src="preview_dao_bundle.xml"/>
</StorageBindings>
<Wrappers>
<Wrapper Name="SessionWrapper">
<Storage Class="com.tridion.storage.persistence.JPADAOFactory" Id="sessionDb" Type="persistence" dialect="MSSQL">
<Pool CheckoutTimeout="120" IdleTimeout="120" MonitorInterval="60" Size="5" Type="jdbc"/>
<DataSource Class="com.microsoft.sqlserver.jdbc.SQLServerDataSource">
<Property Name="serverName" Value="localhost"/>
<Property Name="portNumber" Value="1433"/>
<Property Name="databaseName" Value="SessionPreview"/>
<Property Name="user" Value="SessionPreview_User"/>
<Property Name="password" Value="xxxxxx"/>
</DataSource>
</Storage>
</Wrapper>
</Wrappers>
cd_ambient_config.xml - to ensure this following sections are present
<WhiteList>
<IPAddresses>
<Ip>0.0.0.0-255.255.255.255</Ip>
</IPAddresses>
</WhiteList>
<Cartridges>
<Cartridge File="cd_webservice_preview_cartridge.xml" Category="SYSTEM"/>
</Cartridges>
In Session enabled Content Service side:
cd_stograge_config.xml - to ensure this following sections are present.
<StorageBindings>
<Bundle src="preview_dao_bundle.xml"/>
</StorageBindings>
<Wrappers>
<Wrapper Name="SessionWrapper">
<Storage Class="com.tridion.storage.persistence.JPADAOFactory" Id="sessionDb" Type="persistence" dialect="MSSQL">
<Pool CheckoutTimeout="120" IdleTimeout="120" MonitorInterval="60" Size="5" Type="jdbc"/>
<DataSource Class="com.microsoft.sqlserver.jdbc.SQLServerDataSource">
<Property Name="serverName" Value="localhost"/>
<Property Name="portNumber" Value="1433"/>
<Property Name="databaseName" Value="SessionPreview"/>
<Property Name="user" Value="SessionPreview_User"/>
<Property Name="password" Value="xxxxxx"/>
</DataSource>
</Storage>
</Wrapper>
</Wrappers>
cd_ambient_config.xml - to ensure this following sections are present
<WhiteList>
<IPAddresses>
<Ip>0.0.0.0-255.255.255.255</Ip>
</IPAddresses>
</WhiteList>
<GloballyAcceptedClaims>
<Claim Uri="taf:session:preview:preview_session"/>
</GloballyAcceptedClaims>
<Cartridges>
<Cartridge File="cd_webservice_preview_cartridge.xml" Category="SYSTEM"/>
<Cartridge File="cd_webservice_preview_cartridge.xml"/>
</Cartridges>
<Cookies>
<CookieClaim DefaultValue="true" Name="CookieClaim"/>
<Cookie Type="ADF" Name="TAFContext" />
</Cookies>
In Web application side:
cd_client_conf.xml
Cache is disabled
cd_ambient_conf.xml - to ensure this following sections are present
<ForwardedClaims CookieName="TAFContext">
<Claim Uri="taf:session:preview:preview_session"/>
</ForwardedClaims>
<Security>
<GloballyAcceptedClaims>
<Claim Uri="taf:session:preview:preview_session"/>
</GloballyAcceptedClaims>
</Security>
In Java Web App:
Enable the Ambient Data Framework by adding the following to your web.xml:
<filter>
<filter-name>Ambient Client Filter</filter-name>
<filter-class>com.sdl.web.ambient.client.AmbientClientFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Ambient Client Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
In .NET Webapp:
Add the following inside the <modules> section inside the <system.webServer> section
<add type="Tridion.ContentDelivery.AmbientData.HttpModule"
name="Tridion.ContentDelivery.AmbientData.HttpModule" />
Refer to the documentation here
- To make sure to Add “Enable inline editing for content” TBB
- To ensure if CMS application is running in https then mandatory to run your web application also in https.
- To ensure to add the staging website URL in topology manager, in case if you are testing with your local system with source build for debugging then also ensure to add your localhost:port domain details to topology manager.
- To enable content service logs to debug level to see claim cookie forwards are appearing in the logs.
- To ensure preview service XPM Session Broker DB to have a Read and Write permissions to the session_db user.
- To ensure in XPM HTML Markup are correctly rendering in web app the HTML source
- To ensure with fiddler CMS XPM scripts are loading correctly
- If you press the Update Preview button then - you should be able to see the session details in the session preview DB tables.
- To ensure in the CMS Settings -> Inline editing -> Session Preview Settings -> Preview service is enabled.
I hope it helps.
Get-TtmCdEnvironment
)