Hi,
I'm currently working on a workbench that will be invoked with the fmedatastreaming web service in FME Server. The web service is called with URL parameters, like so:
https://my-fme-server/fmedatastreaming/Test_Public/VindfangDEV.fmw?session=5218605431&contact_name=Innmåler&contact_org=Virksomhet&contact_phone=12345678&metadata_soksys=123&files=I+-+Trekkerør+Utført.gmi&debug=true&contact_mobile=12345678
If I inspect the parameter values fetched from ParameterFetcher with a Logger transformer inside my workbench, I get encoding errors:
However, in both Request Data and earlier in the log file, these values are not only properly URL encoded in the request URL, but also correctly encoded and displayed:
And:
The encoding problem appears to only occour in the FME engine executing the workbench, but not in the web service nor the admin web interface.
Manually encoding the problematic characters prior to calling the fmedatastreaming web service (...&contact_name=Innm%C3%A5ler&&files=I+-+Trekker%C3%B8r+Utf%C3%B8rt.gmi&...) does not make any difference.
But if I simply click the "Resubmit Job" button from FME Server's "Jobs / Completed" interface, ParameterFetcher will encode the characters corretly and my Logger transformer will show the parameters with correct encoding!
So the encoding problem only occours when the workbench is invoked through the web services. The same problem (and solution with resubmitting the job) occours when I try the fmejobsubmitter web service.
Because the Request Data tab and the log file shows correctly encoded characters, I don't think the problem lies with Tomcat. Otherwise, I would expect the encoding errors to appear in both FME Server's web admin interface and in the log file too. Just for completeness, here's how character encoding in my fmedatastreaming Tomcat webapp is setup (default from FME Server installation):
PS. I also tried to encode the string with the TextEncoder transformer to unicode code points, but then my Logger just say that the problematic characters are \uFFFD, a.k.a "replacement for an incoming character whose value is unknown or unrepresentable in Unicode".
Both FME Server and FME Workbench used to author the workbench are version:
- FME Server 2021.0.2
- Build 21321 - win64
I'm not sure how I can proceed to debug this further. Any advice or ideas would be greatly appreciated!