I added the following dependency and I was able to get rid of the above
error -

'org.glassfish.jersey.inject:jersey-hk2:3.0.2'



Best,
Aniruddha
========

ᐧ

On Sun, May 2, 2021 at 7:45 PM Aniruddha Tekade <[email protected]>
wrote:

> I replaced it with -
>
> contexts.addHandler(ctx);
>
> But I am still getting the Caused by: java.lang.IllegalStateException:
> InjectionManagerFactory not found error.
>
> Best,
> Aniruddha
> ========
>
> ᐧ
>
> On Sun, May 2, 2021 at 7:03 PM Lachlan Roberts <[email protected]>
> wrote:
>
>> You are currently replacing the ContextHandlerCollection with your
>> ServletContextHandler, but you don't want to do that.
>> By adding the ServletContextHandler into the existing
>> ContextHandlerCollection you will maintain the previous handlers
>> (LoggingHandler, HelloHandler and SampleApi).
>>
>> Cheers,
>> Lachlan
>>
>> On Mon, May 3, 2021 at 11:50 AM Aniruddha Tekade via jetty-users <
>> [email protected]> wrote:
>>
>>> Hi Lachlan,
>>>
>>> Would this replace previous handlers from the server?
>>>
>>> Best,
>>> Aniruddha
>>> ========
>>>
>>> ᐧ
>>>
>>> On Sun, May 2, 2021 at 6:47 PM Lachlan Roberts <[email protected]>
>>> wrote:
>>>
>>>> Aniruddha,
>>>>
>>>> You should not be setting the ServletContextHandler as the handler for
>>>> the server, but instead just add it to the ContextHandlerCollection.
>>>>
>>>> Try replacing the line
>>>> server.setHandler(ctx); with
>>>> contexts.addHandler(ctx);
>>>>
>>>> Cheers,
>>>> Lachlan
>>>>
>>>> On Mon, May 3, 2021 at 9:22 AM Aniruddha Tekade via jetty-users <
>>>> [email protected]> wrote:
>>>>
>>>>> Hello all,
>>>>>
>>>>> I am using Jetty 11 (Jakarta namespace ) and trying to integrate
>>>>> swagger into it. I am very new to swagger as well as Jetty, I am
>>>>> referring a github gist -
>>>>> https://gist.github.com/nosmokingpistol/302c4c3ef30f183cf70e
>>>>>
>>>>> When I looked at the examples of the swagger integration into Jetty,
>>>>> most of the projects create a ServletContextHandler and then add it
>>>>> into
>>>>> ContextHandlerCollection. And this seems to be the easiest option to
>>>>> work
>>>>> with.
>>>>>
>>>>> However, in my case, there are already pre-existing handlers of type
>>>>> ContextHandler added into contextHandlerCollection. So when I add
>>>>> my ServletContextHandler into ContextHandlerCollection and run the
>>>>> program,
>>>>> it fails at:
>>>>>
>>>>> Caused by: java.lang.IllegalStateException: InjectionManagerFactory
>>>>> not found.
>>>>>
>>>>> I need help with understanding how I can add different handlers into
>>>>> Jetty 11's
>>>>> ContextHandlerCollection and make it run successfully?
>>>>>
>>>>> My server main method :
>>>>> --------------------------
>>>>>
>>>>> public static void main(String[] args) throws Exception {
>>>>>     System.out.println("StartHFS");
>>>>>
>>>>>     // Create and configure a ThreadPool.
>>>>>     QueuedThreadPool threadPool = new QueuedThreadPool();
>>>>>     threadPool.setName("server");
>>>>>
>>>>>     // Create a Server instance.
>>>>>     Server server = new Server(threadPool);
>>>>>
>>>>>     // HTTP configuration and connection factory.
>>>>>     HttpConfiguration httpConfig = new HttpConfiguration();
>>>>>     HttpConnectionFactory http11 = new HttpConnectionFactory(httpConfig);
>>>>>
>>>>>     // Create a ServerConnector to accept connections from clients.
>>>>>     ServerConnector connector = new ServerConnector(server, 1, 1, http11);
>>>>>     connector.setPort(8080);
>>>>>     connector.setHost("0.0.0.0");
>>>>>     connector.setAcceptQueueSize(128);
>>>>>     server.addConnector(connector);
>>>>>
>>>>>     addHandlers(server);
>>>>>
>>>>>     // Start the Server so it starts accepting connections from clients.
>>>>>     server.start();
>>>>>     server.join();
>>>>>
>>>>>     System.out.println("StartHFS DONE");
>>>>> }
>>>>>
>>>>> static void addHandlers(final Server server) throws Exception {
>>>>>         ContextHandlerCollection contexts = new 
>>>>> ContextHandlerCollection();
>>>>>         server.setHandler(contexts);
>>>>>
>>>>>         ContextHandler logHandler = new ContextHandler("/log");
>>>>>         logHandler.setHandler(new LoggingHandler());
>>>>>         contexts.addHandler(logHandler);
>>>>>
>>>>>         ContextHandler helloHandler = new ContextHandler("/hello");
>>>>>         helloHandler.setHandler(new HelloHandler());
>>>>>         contexts.addHandler(helloHandler);
>>>>>
>>>>>         ContextHandler apiHandler = new ContextHandler("/api");
>>>>>         apiHandler.setHandler(new SampleApi());
>>>>>         contexts.addHandler(apiHandler);
>>>>>
>>>>>         ServletContextHandler ctx = new 
>>>>> ServletContextHandler(ServletContextHandler.NO_SESSIONS);
>>>>>         ctx.setContextPath("/");
>>>>>         server.setHandler(ctx);
>>>>>         ServletHolder servletHolder = 
>>>>> ctx.addServlet(ServletContainer.class, "/rest/*");
>>>>>         servletHolder.setInitOrder(1);
>>>>>         
>>>>> servletHolder.setInitParameter("jersey.config.server.provider.packages", 
>>>>> "com.cloudian.handlers");
>>>>> }
>>>>>
>>>>> --------------------------
>>>>>
>>>>> My dependencies are from Jakarta 9 namespace (even for 
>>>>> swagger-core/openapi3.0):
>>>>>
>>>>> --------------------------
>>>>>
>>>>> dependencies {
>>>>>     testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
>>>>>     testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
>>>>>     compile 'org.eclipse.jetty:jetty-server:11.0.0'
>>>>>     compile 'org.eclipse.jetty:jetty-servlet:11.0.0'
>>>>>     compile 'org.eclipse.jetty:jetty-util:11.0.0'
>>>>>     implementation group: 'org.json', name: 'json', version: '20201115'
>>>>>
>>>>>     // Jersey dependencies to setup jersey with Jetty
>>>>>     implementation 
>>>>> 'org.glassfish.jersey.containers:jersey-container-jetty-http:3.0.2'
>>>>>     implementation 'org.glassfish.jersey.core:jersey-server:3.0.2'
>>>>>     implementation 
>>>>> 'org.glassfish.jersey.containers:jersey-container-servlet-core:3.0.2'
>>>>>
>>>>>     // alternative to jaxrx.ws.rs for Jetty 11
>>>>>     implementation 'jakarta.ws.rs:jakarta.ws.rs-api:3.0.0'
>>>>>
>>>>>     // Swagger core dependencies
>>>>>     implementation 'io.swagger.core.v3:swagger-jaxrs2-jakarta:2.1.9'
>>>>> }
>>>>>
>>>>> --------------------------
>>>>>
>>>>> How do I solve this issue? How do I make Jetty run even after adding
>>>>> servletContextHandler into ContextHandlerCollection? What is the mistake I
>>>>> am doing here?
>>>>>
>>>>> Best,
>>>>> Aniruddha
>>>>> ========
>>>>> ᐧ
>>>>> _______________________________________________
>>>>> jetty-users mailing list
>>>>> [email protected]
>>>>> To unsubscribe from this list, visit
>>>>> https://www.eclipse.org/mailman/listinfo/jetty-users
>>>>>
>>>> _______________________________________________
>>>> jetty-users mailing list
>>>> [email protected]
>>>> To unsubscribe from this list, visit
>>>> https://www.eclipse.org/mailman/listinfo/jetty-users
>>>>
>>> _______________________________________________
>>> jetty-users mailing list
>>> [email protected]
>>> To unsubscribe from this list, visit
>>> https://www.eclipse.org/mailman/listinfo/jetty-users
>>>
>> _______________________________________________
>> jetty-users mailing list
>> [email protected]
>> To unsubscribe from this list, visit
>> https://www.eclipse.org/mailman/listinfo/jetty-users
>>
>
_______________________________________________
jetty-users mailing list
[email protected]
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/jetty-users

Reply via email to