জিও সার্ভারে জেটিএস সক্ষম করা (জেটি)?


18

আমি আশা করি ইতিমধ্যে কেউ এটি আবিষ্কার করেছে। আমি ভিজিলা উবুন্টু 16.04 ডিস্ট্রোতে সবেমাত্র জিওসারবারটি ইনস্টল করেছি। জোনসিভার ২.৮ পদ্ধতিটি শাঁবে.হিজুন ক্লাসে সিওআরএস সক্ষম করার জেটি 9.2.13 এর সাথে আর কাজ করে না।

জেটি-সার্লেটলেট.জার-এ জেটি 9.2.13 এর সাথে ইতিমধ্যে পোর্ট করা রয়েছে উল্লেখ রয়েছে।

জেটি সার্ভারের সাথে সংকলিত জেটি লিবতে জিওসিভার / লিবিতে একটি জেটি-সার্লেট -9.2.13.v20150730.jar রয়েছে তবে জেটি-সার্লেটগুলি নয় ।9.2.13.v20150730.jar। এগুলি কি আলাদা নামের একই জার হওয়ার কথা?

জিওসিভার / ইত্যাদি / ওয়েবডেফল্ট.এক্সএমএল বা জিওসিভার / ওয়েব অ্যাপস / জিওসরবার / ওয়েবে-আইএনএফ / ওয়েব.এক্সএমএলে সিওআরএস সক্ষম করা সম্ভব হবে should

আমার বোধগম্যতা হল যে প্রথমে ওয়েবডিফল্ট.এক্সএমএল প্রয়োগ করা হয় এবং তারপরে ওয়েব.এক্সএমএল।

আমি উভয় এক্সএমএল ফিল্টার অনুসরণ করার চেষ্টা করেছি। আমি ফিল্টার ম্যাপিং যোগ হিসাবে এখনও পাই না। একা ফিল্টার যুক্ত করার ফলে জিওসভার / জেটি পরিষেবাটি সঠিকভাবে শুরু না হবে।

<filter>
    <filter-name>cross-origin</filter-name>
    <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
</filter>

1
সার্লেট এবং সার্লেটগুলি একই সংরক্ষণাগার বলে মনে হচ্ছে না ecclipse.org/jetty/9.2.13.v20150730/apidocs/… । এবং আপনি যে দস্তাবেজগুলি ব্যবহার করেছেন সেগুলির কয়েকটি লিঙ্ক যারা উত্তর দেওয়ার চেষ্টা করে তাদের সহায়তা করবে।
ব্যবহারকারী 30184

টমক্যাট ব্যবহার করবেন না কেন?
ইয়ান টার্টন

1
ভাল প্রশ্ন. আমার জিওসিভার ২.৯ টমকেটের সাথে চলছে তবে বাইনারি সেটআপটি পরীক্ষা করে দেখতে চেয়েছিল এটি আমার জীবনকে আরও সহজ করে তুলবে কিনা। তা হয়নি।
ডেনিস বাউজুস

আপনার সমাধান কি ছিল?
কিয়েভেলি

1
ঠিক আছে. আমি ইতিমধ্যে জিওসিভার 2.10 এর জন্য সমস্যার সমাধান করেছি। সার্লেটস জারটি সঠিকভাবে ইনস্টল না করা আমার দোষ। আমার সঠিক সার্লেটগুলি এখানে ডাউনলোড করা উচিত তারপরে "\ WEB-INF \ lib" ডিরেক্টরিতে অনুলিপি করুন এবং ফিল্টার পরামিতিগুলি যুক্ত করতে " WEB-INF \ web.xML " সম্পাদনা করুন কারণ আমি এই থ্রেডে zflaw এর মন্তব্য অনুসরণ করেছি । জেটি ভি 9 + ইতিমধ্যে সিওআরএস সমর্থন করেছে।
রিজকি ফিরমানসিয়া

উত্তর:


27

webapps/geoserver/WEB-INF/web.xmlফাইলটি সম্পাদনা করুন। এই ফাইলে CORS এর জন্য দুটি উল্লেখ রয়েছে:

<!-- Uncomment following filter to enable CORS -->
<filter>
  <filter-name>cross-origin</filter-name>
     <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
  </filter>

এবং

<!-- Uncomment following filter to enable CORS -->
<filter-mapping>
   <filter-name>cross-origin</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

আপনি আবশ্যক uncomment উভয় অবরোধের (যে সরান <!--এবং -->থেকে filterএবং filter-mappingব্লক।

তারপরে আপনি জেটি পুনরায় চালু করার সময় পরীক্ষা করতে পারবেন যে কমান্ড ব্যবহার করে সবকিছুই কাজ করছে:

curl -v -H "Origin: http://example.com" http://astun-desktop:9080/geoserver/wfs\?service\=WFS\&version\=2.0.0\&request\=GetFeature\&typenames\=sf:bugsites\&filter\=%3Cfes:Filter%20xmlns:fes\=%22http://www.opengis.net/fes/2.0%22%3E%3Cfes:ResourceId%20rid\=%22bugsites.3%22/%3E%3C/fes:Filter%3E

যা সব কিছু ঠিকঠাক থাকলে ফলাফল দেয়:

> User-Agent: curl/7.35.0
> Host: astun-desktop:9080
> Accept: */*
> Origin: http://example.com
>  
< HTTP/1.1 200 OK 
< Access-Control-Allow-Origin: http://example.com 
< Access-Control-Allow-Credentials: true 
< Access-Control-Expose-Headers:  
< Content-Type: text/xml; subtype=gml/3.2 
< Content-Disposition: inline; filename=geoserver-GetFeature.text 
< Transfer-Encoding: chunked
* Server Jetty(9.2.13.v20150730) is not blacklisted 
< Server: Jetty(9.2.13.v20150730) 
< 
* Connection #0 to host astun-desktop left intact 
<?xml version="1.0" encoding="UTF-8"?><wfs:FeatureCollection xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sf="http://www.openplans.org/spearfish" xmlns:wfs="http://www.opengis.net/wfs/2.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" numberMatched="1" numberReturned="1" timeStamp="2017-07-30T15:58:31.423Z" xsi:schemaLocation="http://www.opengis.net/wfs/2.0 http://astun-desktop:9080/geoserver/schemas/wfs/2.0/wfs.xsd http://www.openplans.org/spearfish http://astun-desktop:9080/geoserver/wfs?service=WFS&amp;version=2.0.0&amp;request=DescribeFeatureType&amp;typeName=sf%3Abugsites http://www.opengis.net/gml/3.2 http://astun-desktop:9080/geoserver/schemas/gml/3.2.1/gml.xsd"><wfs:member><sf:bugsites gml:id="bugsites.3"><sf:the_geom><gml:Point srsName="urn:ogc:def:crs:EPSG::26713" srsDimension="2"><gml:pos>590529 4914625</gml:pos></gml:Point></sf:the_geom><sf:cat>3</sf:cat><sf:str1>Beetle site</sf:str1></sf:bugsites></wfs:member></wfs:FeatureCollection>%

24 শে অক্টোবর 2019 আপডেট করুন

এটা এখন আর যোগ করার জন্য প্রয়োজনীয় GeoServer নিম্নলিখিত বয়াম (অন্তত সংস্করণ 2.13.x এবং পরে সঙ্গে) এবং এটি একটি কারণ হবে ত্রুটি । পুরানো সংস্করণগুলির সাথে লড়াই করা লোকদের জন্য আমি এই নোটটি এখানে রেখে দিচ্ছি।

  1. জেটির সংস্করণটির সাথে ম্যাচ করার জন্য জেটি-ইউটিলিটি সার্ভলেট জার যুক্ত করুন - জিও সার্ভারের বর্তমান সংস্করণগুলির জন্য (২.১৫.x) এটি ৯.৪.১২.v20180830 , webapps/geoserver/WEB-INF/libজিওসারবার -২.১.0.০ ডিরেক্টরিটির ভিতরে এটি অনুলিপি করুন (বা আপনি যেখানে জিপটি আনপ্যাক করেছেন না কেন) ফাইল)।

6
জিওসিভারের বিভিন্ন সংস্করণের জন্য, আমি সামঞ্জস্যপূর্ণ জেটি ভেরিসনটি ব্যবহার করে অনুমান করছি find $GEOSERVER_HOME -name "jetty*" | grep -E [[:digit:]]
স্টিভেন কাল্ট

1
জেটি কীভাবে পুনরায় চালু করবেন?
ব্যবহারকারী210757

আমি এই ফোল্ডারে জেটি-ইউজ যুক্ত করার পরেই এই সমাধানটি আমার পক্ষে কাজ করেছে lib
ইস্প্প

6

আপনি যদি "জিওসিভার / ওয়েবঅ্যাপ / জিওসরবার / ওয়েবে-আইএনএফ / ওয়েব.এক্সএমএল" এ ফিল্টার যুক্ত করেন এবং আপনি যদি জেটার / ওয়েব অ্যাপ / জিওসিভারের ভিতরে "জেটি-সার্লেলেটস .9.2.13.v20150730.arar" যুক্ত করেন তবে এটি কাজ করবে / web-INF / lib "


আমি কোথা থেকে জেটি-সার্লেটগুলি পাব? 9.2.13.v20150730.jar? জিওসিভার ২.৯-এর সাথে প্যাকেট করা জেটি-সার্লেট -9.2.13.v20150730.jar এর থেকে কি এটি আলাদা?
ডেনিস বাউজস

হ্যাঁ এটা আলাদা। এছাড়াও লক্ষ্য করুন গন্তব্য ফোল্ডারটি আলাদা
ক্যালানাস

আমি geoserver 2.8.2.Jetty সংস্করণ ব্যবহার করছি না getting.Can কোনো আমাকে বলুন কিভাবে জেটি version.I টা সি শুধুমাত্র জেটি-6.8.1 এইজন্য এটি: / প্রোগ্রাম ফাইল (এক্স 86) / GeoServer 2.8.2 / lib
বীনা হোসুর

3

জেটি 9, উবুন্টু সার্ভার 16.04 এর সাথে আমাকেও /etc/jetty9/start.ini পরিবর্তন করতে হয়েছিল, যাতে নিম্নলিখিত ত্রুটিটি না ঘটে:

2018-03-31 15:10:01.769:WARN:oejuc.AbstractLifeCycle:main: FAILED cross-origin: javax.servlet.UnavailableException: org.eclipse.jetty.servlets.CrossOriginFilter javax.servlet.UnavailableException: org.eclipse.jetty.servlets.CrossOriginFilter

সমাধানটি এখানে : আপনার your {jetty.base} /start.ini এ সার্লেটলেট মডিউলটি সক্ষম করা উচিত

ফলস্বরূপ, আমি প্রতিস্থাপন করেছি:

--module=deploy,http,jsp,jstl,websocket,ext,resources

দ্বারা :

--module=deploy,http,jsp,jstl,websocket,ext,resources,servlets

0

আয়ান টার্টন কর্তৃক গৃহীত উত্তরটি এখানে একেবারে সেরা। যেহেতু আমি ডকার ম্যানুয়াল সম্পাদনাটি ব্যবহার করছি তা তেমন নয়। এছাড়াও আমি কোনও এসইডি গুরু নই, তবে ওয়েব.এক্সএমএল গঠনের জন্য ধন্যবাদ (লক্ষ্যযুক্ত স্ট্রিং নথির স্কোপের ক্ষেত্রে স্বতন্ত্র), আমি সামান্য স্নিপেট নিয়ে এসেছি:

sed -i 's_<!-- <filter>_<filter>_' web.xml
sed -i 's_</filter> -->_</filter>_' web.xml
sed -i 's_<!-- <filter-mapping>_<filter-mapping>_' web.xml
sed -i 's_</filter-mapping> -->_</filter-mapping>_' web.xml

বা ডকফাইফিল এ:

# enable CORS
RUN wget -q http://central.maven.org/maven2/org/eclipse/jetty/jetty-servlets/9.2.13.v20150730/jetty-servlets-9.2.13.v20150730.jar -P ${GEOSERVER_INSTALL_DIR}/WEB-INF/lib \
 && sed -i 's_<!-- <filter>_<filter>_' ${GEOSERVER_INSTALL_DIR}/WEB-INF/web.xml \
 && sed -i 's_</filter> -->_</filter>_' ${GEOSERVER_INSTALL_DIR}/WEB-INF/web.xml \
 && sed -i 's_<!-- <filter-mapping>_<filter-mapping>_' ${GEOSERVER_INSTALL_DIR}/WEB-INF/web.xml \
 && sed -i 's_</filter-mapping> -->_</filter-mapping>_' ${GEOSERVER_INSTALL_DIR}/WEB-INF/web.xml

0

আপনার নির্দিষ্ট জিওসিভার অ্যাপ্লিকেশনটির জন্য জেটির কোনও সংস্করণ আপনার কাছে রয়েছে তা ভাবছেন।

ওএসএক্সের জন্য আমি কেবল জিওসিভারটি শুরু করেছি এবং লগটিতে এটির মতো কিছু দেখানো উচিত:

2019-05-10 07:25:13.444:INFO:oejs.Server:startup executor: jetty-9.2.13.v20150730

আমি নিশ্চিত যে প্রয়োজনে লিনাক্স সার্ভার থেকে চালানোর সময় টমক্যাট লগগুলিতে এটি একই রকম similar

এছাড়াও, এটি প্রতিক্রিয়া শিরোনামে দৃশ্যমান হওয়া উচিত যেমন:

Connection: close
Server: Jetty(9.2.13.v20150730)
X-Frame-Options: SAMEORIGIN

যেমন, গৃহীত উত্তরের হিসাবে কার্ল কমান্ডটি ব্যবহার করার চেষ্টা করার সাথে উল্লেখ করা হয়েছে এটি সার্ভার সংস্করণটিও উপস্থাপন করবে:

curl -v -H "Origin: http://example.com" http://astun-desktop:9080/geoserver/wfs\?service\=WFS\&version\=2.0.0\&request\=GetFeature\&typenames\=sf:bugsites\&filter\=%3Cfes:Filter%20xmlns:fes\=%22http://www.opengis.net/fes/2.0%22%3E%3Cfes:ResourceId%20rid\=%22bugsites.3%22/%3E%3C/fes:Filter%3E
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.