Jersey'de bir Kaynak veya Hizmet olarak yer almayan ve henüz bağımlılıkları Jersey ServiceLocator'dan enjekte edilmesini isteyen bir sınıfın tekil bir örneğini oluşturmak istiyorum.Nasıl Jersey 2.12 HK2 ServiceLocator almak için?
benim ResourceConfig yapıcı manuel bu sınıf, kayıt, ResourceConfig sonra şöyle Grizzly fabrika yönteme geçirilir:
ResourceConfig resourceConfig = new DeviceServiceApplication();
LOGGER.info("Starting grizzly2...");
return GrizzlyHttpServerFactory.createHttpServer(BASE_URI,
resourceConfig, mServiceLocator);
Jersey ServiceLocator bir başvuru nasıl olduğunu kalır sorun Böylece nesnemi enjekte edilen bağımlılıkları ile almak için createAndInitialize() yöntemini çağırabilirim. Önceki Jersey sürümlerinde, bir ServiceHandler beklediğim kurucu varyantları görüyorum, ki bu elbette servis bulucuya erişim sağlıyor (başka bir konuya nasıl başlayacağım). Ayrıca bir ana ServiceLocator'da geçmeyi denediğimi görebilirsiniz ancak elbette ki çözünürlük çocuktan -> ana konum belirleyicisinden ve diğer yönden olmamasından dolayı olur. Bu nedenle Jersey @Contract ve @Service türleri, nesneyi ebeveynimin sormasını engeller. burada görülebilir.
GrizzlyHttpServerFactory'den başka bir şey kullanmam gerekiyor mu? Tek başıma bağımlılığımdan vazgeçip el ile tel çeker miyim?
mı? başka yolu var mı konteyner yaşam döngüsüne erişmek bir overkill gibi görünüyor. Teşekkürler – Architucas
Başka bir alternatif çözüm şudur: https://stackoverflow.com/questions/21149161/jersey-and-hk2-servicelocator/21998307#21998307 – ozhan
Kaynak yapılandırması nedir? myResourceConfig.getServiceLocator() 'dışında bu sınıf ne zaman çağrılır? –