Hi Adam,
I try to use endpoints to make http.client request by following your recommendation KB:
1. https://lithosphere.lithium.com/t5/developers-knowledge-base/http-client-FreeMarker-Context-Object/ta-p/80614
2. https://lithosphere.lithium.com/t5/developers-knowledge-base/http-client-response-FreeMarker-context-object/ta-p/80622
The first thing i did , it is to add the allow domain setting in System. (Please see the attachment: http_client_setting) . I create a really simple http client request in my endpoints. The code are:
<#assign response=http.client.request("http://tomtom-uk--tst.tomtom.com/cgi-bin/tomtom_uk.cfg/services/soap?wsdl").get().content />
<#if response.hasError>
${response.error.message}
</#if>
${response}
The response either complian java.lang.exception error message or empty; it depends on how I set the view content type. If I set the view content type to text/xml, i will get java.lang.exception error message.
error>
Error on line 1, column 1 in demo_context_object.ftl
http.client.request("http://tomtom-uk--tst.tomtom.com/cgi-bin/tomtom_uk.cfg/services/soap?wsdl").get().content is undefined.
It cannot be assigned to response
The problematic instruction:
----------
==> assignment: response=http.client.request("http://tomtom-uk--tst.tomtom.com/cgi-bin/tomtom_uk.cfg/services/soap?wsdl").get().content [on line 1, column 1 in demo_context_object.ftl]
----------
Java backtrace for programmers:
----------
freemarker.core.InvalidReferenceException: Error on line 1, column 1 in demo_context_object.ftl
http.client.request("http://tomtom-uk--tst.tomtom.com/cgi-bin/tomtom_uk.cfg/services/soap?wsdl").get().content is undefined.
It cannot be assigned to response
at freemarker.core.Assignment.accept(Assignment.java:111)
at freemarker.core.Environment.visit(Environment.java:221)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:221)
at freemarker.core.Environment.process(Environment.java:199)
at freemarker.template.Template.process(Template.java:237)
at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:366)
at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:283)
at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:233)
at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:167)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at lithium.servlet.spring.SpringControllerDispatcherServlet.service(SpringControllerDispatcherServlet.java:80)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at
If the view/content type is html, i will get empty return.
I am wondering it must be something I make it wrong, because I can get response if I paste the url (http://tomtom-uk--tst.tomtom.com/cgi-bin/tomtom_uk.cfg/services/soap?wsdl) in my browser.
Can you please advices here? thank you