Saya harap seseorang sudah menemukan yang ini. Saya baru saja menginstal Geoserver 2.9 pada distro vanilla 16.04 Ubuntu. Metode Geoserver 2.8 untuk mengaktifkan CORS dengan kelas shanbe.hezoun tidak lagi berfungsi dengan Jetty 9.2.13.
Ada yang menyebutkan bahwa dukungan CORS sudah dikemas dengan Jetty 9.2.13 di jetty-servlets.jar.
Lib Jetty yang dikompilasi dengan Geoserver berisi jetty-servlet-9.2.13.v20150730.jar di geoserver / lib tetapi tidak jetty-servlets.9.2.13.v20150730.jar. Apakah ini seharusnya tabung yang sama dengan nama yang berbeda?
Seharusnya dimungkinkan untuk mengaktifkan CORS baik di geoserver / etc / webdefault.xml atau di geoserver / webapps / geoserver / WEB-INF / web.xml.
Pemahaman saya adalah bahwa webdefault.xml diterapkan terlebih dahulu dan web.xml sesudahnya.
Saya sudah mencoba filter berikut di kedua xml. Sejauh ini saya belum menambahkan pemetaan filter. Menambahkan filter saja akan menyebabkan layanan Geoserver / Jetty tidak dimulai dengan benar.
<filter>
<filter-name>cross-origin</filter-name>
<filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
</filter>
Jawaban:
Edit
webapps/geoserver/WEB-INF/web.xml
file. Ada dua referensi untuk CORS dalam file ini:dan
Anda harus menghapus tanda komentar pada kedua blok (yang menghapus
<!--
dan-->
darifilter
danfilter-mapping
blok.Kemudian ketika Anda me-restart Jetty Anda dapat menguji bahwa semuanya berfungsi dengan menggunakan perintah seperti:
yang jika semuanya baik akan memberikan hasil seperti:
Perbarui 24 Oktober 2019
Tidak perlu lagi menambahkan toples berikut ke GeoServer (setidaknya dengan versi 2.13.x dan yang lebih baru) dan itu akan menyebabkan kesalahan . Saya meninggalkan catatan ini di sini untuk orang-orang yang melawan versi yang lebih lama.
webapps/geoserver/WEB-INF/lib
dalam direktori geoserver-2.15.0 (atau di mana pun Anda membuka zip. mengajukan).sumber
find $GEOSERVER_HOME -name "jetty*" | grep -E [[:digit:]]
.lib
folder juga.Ini akan berfungsi jika Anda menambahkan filter di "geoserver / webapp / geoserver / WEB-INF / web.xml" dan jika Anda menambahkan tabung "jetty-servlets.9.2.13.v20150730.jar" di dalam "geoserver / webapp / geoserver / WEB-INF / lib "
sumber
dengan Jetty9, UbuntuServer 16.04, saya juga harus memodifikasi /etc/jetty9/start.ini, agar tidak mendapatkan kesalahan berikut:
solusinya ada di sini : Anda harus mengaktifkan modul servlets di $ {jetty.base} /start.ini Anda
akibatnya, saya mengganti:
oleh :
sumber
Jawaban yang diterima oleh Ian Turton adalah yang terbaik di sini. Karena saya menggunakan pengeditan manual Docker tidak demikian. Saya juga bukan guru SED, tetapi berkat struktur web.xml (string target unik dalam cakupan dokumen), saya menghasilkan sedikit cuplikan:
Atau di Dockerfile:
sumber
Bagi siapa pun yang bertanya versi dermaga mana yang Anda miliki untuk aplikasi geoserver khusus Anda.
Untuk OSX saya cukup memulai geoserver dan melihat log itu seharusnya menunjukkan sesuatu seperti:
Saya yakin itu serupa dalam log kucing jantan ketika menjalankan dari server linux jika diperlukan.
Juga, itu harus terlihat di header respons yaitu:
Yaitu, ketika jawaban yang diterima menyebutkan coba gunakan perintah curl itu akan menyajikan versi server juga:
sumber