Issue
My Spring Boot application is quite small and has one job: Act as a client by opening a websocket connection to a third-party website and listen for messages.
The problem is that after my javax.websocket.Endpoint implementation has been initialised and the connection has been created, my Spring boot application closes.
I would have thought that any open websocket connection would keep my application up and running?
I don't need an embedded servlet container so I have specifically set web-environment: false
in application.yaml.
Is there a way to remedy this without adding a servlet container I will never use?
Solution
I fixed this by using OkHttpClient and initialising it with a @PostConstruct
in my @Configuration
. I annotated the listener with @Component
and it now stays alive without needing the embedded servlet container.
Answered By - wild_nothing
Answer Checked By - Clifford M. (JavaFixing Volunteer)