2

we are configuring TRI and we are mapping the application for multilingual Websites.

But It's not working. only it's detecting the first publication/language set on the cd_dynamic_conf.xml

Debugging the code we see:

webRequestContext.setBaseUrl(getBaseUrl(request)); 
webRequestContext.setContextPath(urlPathHelper.getOriginatingContextPath(request)); 
webRequestContext.setRequestPath(urlPathHelper.getOriginatingRequestUri(request));

webRequestContext.getFullUrl()

The url that we are requesting is: http://localhost:8080/tms4web/en/index.html

The result of execution is:

The base url for our app is: http://localhost:8080

The context path is: /tms4web

The request url is: /tms4web/en/index.html

The full url is: http://localhost:8080/tms4web/tms4web/en/index.html

We are seeing that is concatenating two times /tms4web and we suspect that, when is trying to find the publication in the cd_dynamic_conf.xml, it's not able to find it.

Also, we see that is only parsing the settings.json for the first publication in the cd_dynamic_conf.xml. We think that is treating like the default publication when don't find the path.

Our cd_dynamic_conf.xml is:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration Version="7.1"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:noNamespaceSchemaLocation="schemas/cd_dynamic_conf.xsd">
    <URLMappings>
        <StaticMappings>
            <Publications>
                <Publication Id="23">
                    <Host Protocol="http" Domain="localhost" Port="8080" Path="/tms4web/es"/>
                </Publication>
                <Publication Id="22">
                    <Host Protocol="http" Domain="localhost" Port="8080" Path="/tms4web/en"/>
                </Publication>
            </Publications>
        </StaticMappings>
        <StorageMapping IdentifyPublicationByProperty="publicationUrl"/>
    </URLMappings>
    <TCDLEngine>
        <Properties>
        </Properties>
    </TCDLEngine>
</Configuration>

Our cd_link_conf.xml is:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration Version="7.1"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="schemas/cd_link_conf.xsd">
       <Publications>
             <Publication Id="23">
                    <Host Protocol="http" Domain="localhost" Port="8080" Path="" />
             </Publication>
             <Publication Id="22">
                    <Host Protocol="http" Domain="localhost" Port="8080" Path="" />
             </Publication>
       </Publications>
</Configuration>

In tridion, we localized the "Localization Configuration" component and we published the setting page in both languages (pub 22 and pub 23). In the publication path we set: /tms4web/en for pub 22 and /tms4web/es for pub 23.

What are we doing wrong?

Thank you.

2 Answers 2

3

The publication Path is irrelevant in TRI as everything is published to the database. The Publication URL is relevant however.

If you are running the TRI web app on http://localhost:8080/tms4web then you should not have /tms4web in the Publication URL, just /en or /es.

Alternatively run the TRI on the root (http://localhost:8080) and have tms4web in your Publication URL.

8
  • Sorry Will, but I don't understand your answer. we are running our app in localhost:8080/tms4web. I understand that I have to change the publication url in tridion to /en or /es. But, In the cd_dynamic_conf.xml what I have to put? Have I to add /tms4web or not?
    – Guskermitt
    Mar 11, 2015 at 12:06
  • Try both. If neither work, you may have to run the application in the root of the site - is there a particular reason why you are not doing this?
    – Will Price
    Mar 11, 2015 at 12:55
  • In Jboss we cannot run the app in the root. it's a war and has his own context. The problem is that is concatenating the name of the app two times. If we modify the code the app works. When we finish all the tests we post the answer that we found.
    – Guskermitt
    Mar 11, 2015 at 14:02
  • Aha - so its a Java version of TRI... sorry - I was assuming it was the .NET version. Presumably there must be a way to configure JBoss to have a root context though, otherwise people would never be able to run a homepage on a JBoss site
    – Will Price
    Mar 11, 2015 at 14:22
  • well, we use apache to mask our url's. We transform the request without the app to a call to the jboss with the app. Thank you.
    – Guskermitt
    Mar 11, 2015 at 15:37
0

We modified the LocalizationResolverInterceptor class. We changed:

//FIXME : we mount the fullurl insted of webRequestContext.getFullUrl(). This function add two times the app context. 
final String fullUrl = webRequestContext.getBaseUrl() + webRequestContext.getRequestPath(); 

Also we made the same modification at MediaTag Class.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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