Gömülü iskelet Demo project on github ve aşağıdaki temel kod ile basit jersey uygulamasına sahip olduğumu varsayalım.Jersey'deki tüm kayıtlı JAX-RS Varlık Sağlayıcıları nasıl listelenir
Geri jersey1 ile günlerde ben günlük mesajları vardı:
мая 07, 2016 5:05:50 AM com.sun.jersey.api.core.PackagesResourceConfig init
INFO: Scanning for root resource and provider classes in the packages:
ru.varren
мая 07, 2016 5:05:50 AM com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Root resource classes found:
class ru.varren.MyResource
мая 07, 2016 5:05:50 AM com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Provider classes found:
class ru.varren.JsonProvider
мая 07, 2016 5:05:50 AM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
INFO: Initiating Jersey application, version 'Jersey: 1.19.1 03/11/2016 02:08 PM'
Ama şimdi jersey2 çalışmak çalışıyorum ve thiere artık log bilgisi olduğunu. Yani, benim soru kayıtlı tüm JAX-RS Varlık Sağlayıcıları listelemek için nasıl olduğunu. Onları nerede listeleyeceğim umrumda değil. main
işlevinde veya bazı @GET
MyResource
yönteminde. Muhtemelen kurulumumdaki bir şeyi değiştirmem veya kaydediciyi boolean'a koymam gerekiyor ama bulamıyorum.
Bu, yalnızca test amaçlıdır. Tüm servis sağlayıcı sınıflarının basit baskısı benim için yeterli olacaktır. Soğutucu seçeneği, sağlayıcıyı yazdırmak ve @Produces
ve @Consumes
MediaType'ı kullanmaktır.
MyResource.java
@Path("test")
public class MyResource {
@GET
@Produces({ MediaType.APPLICATION_JSON })
public Response getPersons() {
return Response.ok("[some data here]").build();
}
}
MyApplication.java
public class MyApplication {
public static void main(String[] args) throws Exception {
URI baseUri = UriBuilder.fromUri("http://localhost/").port(9998).build();
ResourceConfig config = new ResourceConfig(MyResource.class);
config.packages("ru.varren");
Server server = JettyHttpContainerFactory.createServer(baseUri, config, true);
server.join();
}
}
Ve gradle.build
dependencies {
compile 'org.glassfish.jersey.containers:jersey-container-servlet:2.22.2'
compile 'org.glassfish.jersey.containers:jersey-container-servlet-core:2.22.2'
compile 'org.glassfish.jersey.media:jersey-media-json-jackson:2.22.2'
compile 'org.glassfish.jersey.containers:jersey-container-jetty-http:2.22.2'
compile 'org.eclipse.jetty:jetty-server:9.1.0.M0'
compile 'org.eclipse.jetty:jetty-servlet:9.1.0.M0'
}
çaprazlayan bir örneğini göstermektedir: // jersey.java.net/apidocs/2.22.2/jersey/org/glassfish/jersey/server/monitoring/ApplicationEvent.html) ve "uygulama başlatıldı" da ['ApplicationEvent'] üzerindeki yöntemleri kullanın (https: // jersey.java.net/apidocs/2 .22.2/jersey/org/glassfish/jersey/server/monitoring/ApplicationEvent.html) kaynakları ve sağlayıcıları almak için –
@peeskillet Evet, tam olarak ne aradığımı. Özel 'ApplicationEventListener' sınıfında 'onEvent' yöntemindeki 'applicationEvent.getProviders() ', ihtiyacım olan tüm bilgileri bana verir. https://i.gyazo.com/7050dccb82d4c2445709b2079817ce00.png Ve işte aynı zamanda güzel doktorlar https://jersey.java.net/documentation/latest/monitoring_tracing.html. Yorumunuzu cevap olarak gönderir misiniz? Kabul Edilen bir cevap olarak işaretleyeceğim – varren
@peeskillet Bunun için herhangi bir satıcı-nötr API var mı? –