Wenn in der PDF Ausgabe ein WMS bzw. OSM Layer nicht ausgegeben wird, obwohl er auf der Client Seite zu sehen ist, hat dies meistens eine der folgenden Ursachen.
Server hat keinen Internetzugriff oder Zugriffe werden durch Firewall blockiert
Im Gegensatz zum Client wird die Karte für das PDF auf der Serverseite gerendert. Der Server benötigt unter dem Benutzeraccount mit dem der Dienst läuft Zugriff auf die entsprechenden Web-Dienst.
Sie können derartige Meldungen in <TOMCATHOME>/logs/gisx3.log sehen.
PDF ist zu groß
Im Gegensatz zum Client werden die Daten eines WMS nicht gekachelt abgefragt sondern für den gesamten Ausschnitt. Ferner ist die Auflösung für ein PDF deutlich höher (in der Regel 72 DPI auf Clientseite, mindestens 150 im PDF). Dadurch wird der abgefragte Ausschnitt eines WMS (bzw. das angeforderte Bild) sehr groß - Zu groß für viele WMS Dienste.
Auch hier kann ein Blick in die Logdatei helfen. Dort ist der genaue Aufruf für den jeweiligen WMS zu sehen (Suchen Sie nach "http://<Adresse-des-WMS>"). Den Aufruf können Sie anschließend kopieren und in Ihrem Browser ausführen. Die Rückgabe liefert in derartigen Fällen oft Meldungen wie "Image too large". Abhilfe können Sie schaffen indem Sie nicht großformatig Bilder ausgeben. Außerdem arbeiten wir natürlich an einer Lösung um dieses Problem zu umgehen.
Ein Bestandteil des getCapabilities Dokuments liegt in einem geschützten Bereich:
Im Gegensatz zum Client wird wegen des Einsatzes einer Fremdbibliothek bei der PDF Ausgabe das komplette getCapabilities Dokument eines WMS Dienstes gelesen und ausgewertet.
Manchmal enthält dieses Dokument schemaLocation Verweise auf XSD Resourcen die in geschützen Bereichen liegen:
Ein Beispielaufruf eines WMS Dienstes http://securedwms.de/wms/service?service=WMS&version=1.3.0&request=GetCapabilities liefert zum Beispiel folgendes XML Dokument zurück:
<WMS_Capabilities ... xsi:schemaLocation="http://www.opengis.net/wms ... http://securedwms.de/wms/service?service=WMS&version=1.3.0&request=GetSchemaExtension">
Dummerweise befindet sich http://securedwms.de/wms/service in einem geschützen Bereich. In diesem Fall hilft nur folgender Trick:
Legen Sie in ihrem Classpath (z.B. <TOMCATHOME>/lib) ein Verzeichnis mit einer leeren Datei an, welches die geschützte Resource wiederspiegelt. Im Beispiel "<TOMCATHOME>/lib/de/securedwms/wms/service" (Der Dateiname heißt "service").