باستخدام مرشحات مع خادم أشيب تشغيل خدمة جيرسي REST

StackOverflow https://stackoverflow.com/questions/1439503

  •  10-07-2019
  •  | 
  •  

سؤال

وأنا أحاول أن استخدام الدب لإنشاء ملقم لتشغيل خدمة REST أنني قد وضعت باستخدام جيرسي. أنا خلق خادم الدب باستخدام:

final String baseUri = "http://localhost:9998/";
final Map<String, String> initParams = new HashMap<String, String>();
initParams.put("com.sun.jersey.config.property.packages", "me.my.rest.package");
SelectorThread threadSelector = 
  GrizzlyWebContainerFactory.create(baseUri, initParams);

وكما جميع الأمثلة لقد وجدت يبدو أن توحي. هذا على ما يرام، بدء تشغيل الملقم وقادرة على توجيه الطلبات الواردة إلى الطبقات الموارد بلدي.

ولكن، وتنفيذ الخدمة يتطلب ذلك استخدام عامل تصفية بريمج. ويبدو أن الدب يدعم تعريف الفلاتر وأخرى تتعلق بريمج خيارات التكوين مماثلة، عبر الطبقة ServletAdapter. مشكلتي هي أنني لا أستطيع العمل على كيفية تعريف عامل تصفية عند استخدام com.sun.jersey.api.container.grizzly.GrizzlyWebContainerFactory الذي يوفر التكامل جيرسي.

وأي أفكار؟

هل كانت مفيدة؟

المحلول

وأعتقد أنني قد يكون شيئا بالنسبة لك ...

GrizzlyWebServer ws = new GrizzlyWebServer(9999);
ServletAdapter jerseyServletAdapter = new ServletAdapter();
jerseyServletAdapter.setServletInstance(new ServletContainer());
jerseyServletAdapter.addInitParameter(
    "com.sun.jersey.config.property.packages", "me.my.rest.package");
jerseyServletAdapter.setServletPath("/api");

// HERE IS HOW YOU ADD A FILTER 
jerseyServletAdapter.addFilter(new MyFilter(), "HibernateSessionFilter", null);

ws.addGrizzlyAdapter(jerseyServletAdapter, null);

... عملها بالنسبة لي، وآمل أن يساعدك أيضا.

نصائح أخرى

هل حاولت:

((ServletAdapter) threadSelector.getAdapter()).addFilter()
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top