10

It turns out this is all to do with encoding. In each microservice bin/start.sh script replace the JVM_OPTIONS with this: JVM_OPTIONS="-Xrs -Xms256m -Xmx512m -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true -Dorg.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=true" Restart Tomcat, the DXA site works and we are all happy again :)


9

You can turn it back on in your Spring dispatcher servlet XML: <!-- DD4T Provider beans --> <bean id="binaryProvider" class="org.dd4t.providers.impl.BrokerBinaryProvider"> <property name="contentIsCompressed" value="true"/> <property name="cacheProvider" ref="cacheProvider" /> </bean> <bean id="...


8

Some time ago, we also worked on a DXA implementation where we customized the link resolver (I think we were using DXA 1.5 or 1.6, but the approach should be similar). The Spring framework should normally scan any of your packages for implementations, annotated by @Component. By adding @Primary, you're able to make your implementation take precedence over ...


7

Indeed, DXA model mapping doesn't support Page Links just like CM itself doesn't support that. What you are suggesting (putting a Page TCM URI in a text field) is a bad idea in general; it is not a managed link and will give problems when you delete the referenced Page or when you port the item to another environment. Content Manager (and DXA) assumes you ...


7

I think the problem here is that the implicit semantic mapping "de-pluralizes" the name of a list-type property. So, a property called "items" implicitly maps to a CM field called "item". However, as visible in the schemas.json fragment you provided, your CM field is called "items" too. This means you will need an explicity semantic mapping: add a @...


6

You are requesting http://10.9.5.175:8080 You have your BaseUrls set as http://localhost:8080 Add a Base URL of http://10.9.5.175:8080 You can add a BaseURL with the Powershell command (assuming your Website Id is 'Website1' and you want to keep localhost) Set-TtmWebsite -BaseUrls "http://localhost:8080", "http://10.9.5.175:8080" -Id Website1 You can ...


6

If you are using Tridion 2013 SP1, that implies that the CD libraries are used in-process and hence the version of Spring is dictated by CD (or at least: the version of Spring you use should be 100% compatible with the version used by CD) and CD 2013 SP1 uses Spring 3.1. Indeed, early DXA Java releases used Spring 3.2.8, but that has been found problematic ...


6

That EHCache uses a lot of memory makes sense, since when caching is turned on, it will use the configured amount of memory to store items. If you disable cache, be prepared to take a big performance hit. All models and items generated and fetched from the Tridion Broker database will always happen. Turning on the Tridion Object Cache will essentially move ...


6

You don't need easylicense, that's right. There were some known (and fixed in some later versions) bugs in CIL when some artifacts were still dependent on CIS stuff. Simply exclude easylicense from the build then. Same as with #1. I don't see them in DXA poms, and I am surprised that you have these problems. Apparently, they come through CIL dependency. The ...


6

Bart, your comment was correct. It seemed that the target groups were published, but the extension dao (<Bundle src="storage_extension_dao_bundle.xml" />) wasn't properly set up, and the deployer_conf.xml also didn't contain the proper pipeline items (so this piece of the documentation wasn't properly installed : https://docs.sdl.com/LiveContent/...


6

The solution is surprisingly simple. @Controller public class MyPageController { @Autowired private PageController pageController; @RequestMapping(value = "/articles") public String handleGetPage(HttpServletRequest request, HttpServletResponse response) throws Exception { return pageController.handleGetPage(request, response); }...


6

DXA 2.1 is avaliable for .NET only, see here The Java version is planned for release soon after 2.1 in the subsequent 2.2 release Also, here (in the comment):


6

There are various reasons to your page loading for the first time call will get slow. The first request to a publication requires downloading & parsing of a lot of binary files with publication configuration after that page and used images and components links resolving calls for that page. To gain the performance caching is important to enable in your ...


5

I am assuming you have understanding of basic flow of DD4T based content model where Component Template is directly connected with component view and Page Template is directly connected with Page view in your MVC based application. DXA 1.2 come up with a ready-made website solution in Java. If you setup the DXA website code and debug the whole application ...


5

Starting from version 1.2, the SDL Digital Experience Accelerator (DXA) provides support for Java, which unfortunately because of time contrainst did not come with Java modules yet (so indeed the modules are currently only available for DXA .NET). https://github.com/sdl/dxa-modules/tree/master/webapp-java simply contains placeholders for the modules which ...


5

DXA uses the DD4T serialization/deserialization because we wanted to adopt it as a future standard, so from that point of view I would say you are on the right approach of wanting to reuse it indeed. As of DXA 1.1 we started using the JSON serialization which is part of DD4T 2.0 (DXA 1.1 used a custom build of DD4T 1.31 to add JSON support next to XML, as ...


5

The error indicates that something went wrong when loading your configuration file (e.g. it is invalid). To resolve it, make sure your smarttarget_conf.xml file has a value for the DefaultUniverse setting. The default value is 'catalog01'. While you are there, you should take a look at the other settings and make sure they are correct as well.


5

In case of 404 exception DXA indeed resolves a page error-404 and shows it. Such a case is handled by @ExceptionHandler(NotFoundException.class) annotation in PageController. I don't see any way how to override it properly. Fortunately, you have MvcData and ability to write your custom PageBuilder. Make sure that your builder is executed after default one (...


5

For future reference: We had to put the artifacts from #3 in the local repository, after that the build worked. We did not need to exclude #1 and #2. (I must post this as an anwser since I am not permitted to comment)


5

Whether you use a key value pair or a specific Schema doesn't matter, the configuration is serialized the exact same way. You can for example take a look at the Google Analytics module, it has a Configuration Schema not based on the key value pair and nothing specificly is done for that. One catch however is that configuration is about string values, since ...


5

As Bart says, DXA in general is designed to generate HTML, but in your case particularly the use of the dxa:region tag causes issues. You could let the Page View output the content from the "Code Component" directly. For example, to get direct access to the first Entity Model in the "MainBody" Region, you can use this in your Page View: pageModel.getRegions(...


5

SDL doesn't currently support any non-relational database for the broker, so the answer is "it depends". If you want to you can use a different storage layer altogether by extending the deployer to interact with that database instead of Tridion's own Broker DB. You will lose the rest of the Tridion CD API (including dynamic linking, publication mapping, any ...


5

The default configuration of all caches in the DXA source code is set on production/live values, to ensure the performance is optimal in case no changes are being made. However, when you want to setup a development or staging environment with XPM, then you should disable these caches, as they indeed make you wait for up to an hour before your changes are ...


5

DXA is so much more than just outputting content to JSONs. There is a lot of material about DXA and its features, but some of the most interesting/valuable are : it's SDL supported the framework has a powerful model binding mechanism that allows you to have strongly typed models in your views it has a variety of Modules that enable you very easy integration ...


5

Whether creating a REST API over OData is a good option for you, nobody can answer but you I would say. Simply using a REST service is commonly accepted as one of the easier ways for external systems to connect, but if that should use OData or something else is something you can come up yourself with best, it might also be depending on the external systems. ...


5

Let me explain how to interpret such a Stack Trace: The exception is a NullPointerException, meaning that the code tried to dereference a pointer which is null. This generally means the code is not robust enough: it did not expect that a pointer could get a null value, but it did. The first line in the Stack Trace reveals where this exception occurred: in ...


5

This is expected behaviour as you shouldn’t be able to use the same url for two sites (within Topology Manager). You’re going to have to either: Specify a different port Use a different hosts name (and probably update your hosts file /DNS), or Use the machine name / machine IP Address (e.g. http://192.168.0.22:9080) Try to use http://127.0.0.1:9080 ...


5

This is used to inject markup from entity views to placeholders in page views, for example additional CSS/JS includes, JS snippets to be executed after jQuery has been initialised etc. This makes it easier to make DXA modules more self-contained when it comes to needed resources. This is used for example in the Instant Campaign module to inject campaign ...


5

I got rid of that error from the logs by adding the TokenService back to the cd_client_conf.xml on the webapp side. <TokenService ClientId="clientID" ClientSecret="encrypted:password"/> This seems like a bug with DXA where even after you have the oAuth disabled, you need the token service tag with client id and client secret in the webapp. For some ...


4

Fixed the above said null pointer issue by doing null check on Accept header. Changes needs to be done in DefaultDataFormatter's getHtmlAcceptScore() and BaseFormatter's getValidTypes(List<String> allowedTypes) operations. Now Varnish cache is able to probe the application successfully. We do not need to change @RequestMapping or in Varnish cache now.


Only top voted, non community-wiki answers of a minimum length are eligible