Druckdienst funktioniert nicht

Issue #700 resolved
Heiko Friedrich created an issue

Hallo,

Der Druckdienst funktioniert nicht.

In der Konsole wird ein internal Servererror (500) ausgegeben:

masterportal.js:74 POST https://xxx:8443/mapfish/print/norderstedt/report.pdf 500 ()
(anonymous) @ masterportal.js:74
t.exports @ masterportal.js:74
t.exports @ masterportal.js:201
s.request @ masterportal.js:201
s.(anonymous function) @ masterportal.js:201
(anonymous) @ masterportal.js:74
(anonymous) @ masterportal.js:59
u @ masterportal.js:201
e._invoke @ masterportal.js:201
(anonymous) @ masterportal.js:201
p @ masterportal.js:59
r @ masterportal.js:59
(anonymous) @ masterportal.js:59
n @ masterportal.js:59
fileDownloads.filter.length.startPrint.getResponse @ masterportal.js:59
(anonymous) @ masterportal.js:201
u @ masterportal.js:201
e._invoke @ masterportal.js:201
(anonymous) @ masterportal.js:201
g @ masterportal.js:201
r @ masterportal.js:201
(anonymous) @ masterportal.js:201
(anonymous) @ masterportal.js:201
b.a.v.createPrintJob @ masterportal.js:201
(anonymous) @ masterportal.js:6
e.dispatch @ masterportal.js:6
dispatch @ masterportal.js:6
buildLegend @ masterportal.js:59
startPrint @ masterportal.js:201
(anonymous) @ masterportal.js:6
e.dispatch @ masterportal.js:6
dispatch @ masterportal.js:6
t.context.a.dispatch @ masterportal.js:6
n.(anonymous function) @ masterportal.js:6
print @ masterportal.js:59
Vt @ masterportal.js:50
o @ masterportal.js:50
e._wrapper @ masterportal.js:50
15:59:28.419 masterportal.js:74 Uncaught (in promise) Error: Request failed with status code 500
at t.exports (masterportal.js:74)
at t.exports (masterportal.js:201)
at XMLHttpRequest.u (masterportal.js:74)

Die rest-services-internet sieht so aus:

{
"id" : "mfp3",
"name" : "Print Service",
"url" : "https://xxx:8443/mapfish/print/",
"typ" : "Print"
},

..und die config.json so:

"print": {
"name": "Karte drucken",
"glyphicon": "glyphicon-print",
"printServiceId": "mfp3",
"printAppId": "norderstedt",
"title": "Geoportal Norderstedt",
"isLegendSelected": false
}

Grüße,

HF

Comments (9)

  1. Dennis Sen

    Hallo Herr Friedrich,

    Fehler 500 ist üblicherweise ein Hinweis darauf, dass serverseitig etwas nicht funktioniert hat. Ich kann masterportalseitig und an der Konfiguration erstmal keinen Fehler sehen. Vielleicht kann MapFish einen der für den Print nötigen Dienste nicht erreichen. Mir fallen noch diese Schritte ein, um das Problem einzugrenzen:

    • Funktioniert die MapFish-Testseite? Diese sollte unter https://xxx:8443/mapfish/ liegen und ermöglichen ohne Client eine PDF zu produzieren. Beispielsweise https://qs-geodienste.hamburg.de/mapfish_print_2_internet/ hat eine Vorbelegung für die Abfrage, an der man sich orientieren kann, falls bei Ihnen keine vorliegt. Alternativ kann man im Browser in den F12-Werkzeugen unter “Netzwerkanalyse” den Request, den das Masterportal produziert, abfangen und dort (ggf. mit Änderungen) einsetzen.
    • Gibt es mehr Details zur Fehlermeldung?

      • Vielleicht produziert MapFish eine Logdatei? (Backendseitig kenne ich MapFish leider nicht näher.)
      • Im Browser unter “Netzwerkanalyse” kann die Antwort des MapFish-Servers eingesehen werden. (In Firefox etwa “Netzwerkanalyse” öffnen, oben links durch das Mülleimer-Icon den Log löschen, Print im Masterportal auslösen, Anfrage in der Netzwerkanalyse anklicken und rechts auf den Reiter “Antwort”; bei anderen Browsern ähnlich.) Gibt es hier neben Status 500 noch weitere Informationen?

    Viele Grüße

  2. Heiko Friedrich reporter

    Hallo,

    es hat ziemlich sicher mit der Anfrage, die das Masterportal an den Mapfish übergibt zu tun.

    Im 2.10.0er MP sieht diese so aus und es funktioniert (auch über Druck der Mapfish-Testseite):

    {"uniqueIdList":[],"layout":"1. A4 hoch - Standard Norderstedt","outputFilename":"report","outputFormat":"pdf","attributes":{"title":"Geoportal Norderstedt","map":{"dpi":200,"projection":"EPSG:25832","center":[565593,5951473],"scale":25000,"layers":[{"baseURL":"https://xxx:8443/geoserver/geo/wms","opacity":1,"type":"WMS","layers":["geo:stadtgebiet"],"imageFormat":"image/png","customParams":{"TRANSPARENT":"true"}},{"baseURL":"https://onmaps.de/phpWMS4/?key=xxxxxxxxxxxx","opacity":1,"type":"WMS","layers":["onmaps_dezent_strassennamen","hausnummern_deutsche_post"],"imageFormat":"image/png","customParams":{"TRANSPARENT":"true"}}]},"scale":"1:25000","showGfi":false,"gfi":{},"showLegend":false,"legend":{}},"visibleLayerIds":["onmaps","no_stadtgebiet"]}

    Im 2.18.0er MP ist die Anfrage anders aufgebaut:

    {"uniqueIdList":[],"visibleLayerIds":["onmaps","no_stadtgebiet"],"layout":"A4 Hochformat","attributes":{"title":"Geoportal Norderstedt","map":{"dpi":200,"projection":"EPSG:25832","center":[565593,5951473],"scale":25000,"layers":[{"baseURL":"https://xxx:8443/geoserver/geo/wms","opacity":1,"type":"WMS","layers":["geo:stadtgebiet"],"imageFormat":"image/png","customParams":{"TRANSPARENT":"true","DPI":200}},{"baseURL":"https://onmaps.de/phpWMS4/?key=xxxxxxxxx","opacity":1,"type":"WMS","layers":["onmaps_dezent_strassennamen","hausnummern_deutsche_post"],"imageFormat":"image/png","customParams":{"TRANSPARENT":"true","DPI":200}}]},"scale":"1:25000","showGfi":false,"gfi":{},"showLegend":false,"legend":{}},"outputFilename":"report","outputFormat":"pdf"}

    Die Fehlermeldung die die Testseite des Mapfish raushaut sieht so aus:

    Error while processing request: Failed to create a print job

    Sie können die Anfragen genau so verwenden, anstatt eines Kartenlayers nimmt der Mapfish einfach einen rosa-Hintergrund, führt die Abfrage aber aus und gibt ein PDF zurück. Auf den ersten Blick sehe ich nur eine Veränderung in der Reihenfolge der übergebenen Dictionaries/Parameter.

    Beste Grüße, Heiko Friedrich

  3. Heiko Friedrich reporter

    Hallo nochmal,

    es scheint mit dem key-value-Paar "layout":"1. A4 hoch - Standard Norderstedt" zu tun zu haben. Bei dem 2.18.0er Portal ist der Wert "A4 Hochformat". Allerdings taucht bei uns in keiner config.yaml ein Format mit diesem Namen auf.

    Auch in den Layout Namen die im MP 2.18.0 aufgerufen werden nicht:

    [cid:image005.png@01D82D67.EDD7BD90]

    Eventuell wurde "A4 Hochformat" irgendwo im Druckmodul des MP’s hard gecoded(?).

    Grüße, HF

    Von: Friedrich, Heiko Gesendet: Dienstag, 1. März 2022 12:06

  4. Dennis Sen

    Hallo,

    ich glaube den Fehler gefunden zu haben. Bei der Initialisierung kommt es zu einem Schiefstand. "A4 Hochformat" ist der Default, der, wenn die Capabilities von MapFish ihn nicht anbieten, ersetzt werden soll. Das hat aber nur teilweise funktioniert – weitere Konfiguration wurde überschrieben, der Name aber nicht.

    Das sollte in https://bitbucket.org/geowerkstatt-hamburg/masterportal/pull-requests/3266/issue-700-fix-print-initialization nun behoben sein. Testen Sie gern gegen den zugehörigen Branch https://bitbucket.org/geowerkstatt-hamburg/masterportal/branch/issue-700-fix-print-initialization, ob es nun funktioniert. (Ich habe keinen passenden MapFish zur Hand, um das ganz sicher auszuprobieren.)

    Viele Grüße

  5. Heiko Friedrich reporter

    Okay, super! Danke! Ich versuche es mir demnächst anzuschauen. Ansonsten teste ich es in der nächsten Version. ☺

  6. Log in to comment