Running Vaadin On REST HTTP Server, Not Servlet API

Hi there.

We are currently evaluating Vaadin for UI support of our open source reactive platform, vlingo: https://github.com/vlingo

I have developed a UI for our vlingo-xoom-starter, but currently we are running it on Jetty.

We have a lightweight embedded HTTP server named vlingo-http. We support any kind of REST API, and would like to know if it is possible to serve a Vaadin UI from a REST server rather than using servlets. We don’t want to support the Servlet API, mainly because servlets are rarely/never used in modern applications and microservices, and we have never had a request to support it.

If Vaadin can’t run against REST, is there any other alternative to servlets?

I hope to get some good news.

Best,
Vaughn

I have developed a UI for our vlingo-xoom-starter, but currently we are running it on Jetty.

Jetty is a Servlet container. So you can run Vaadin app on it.

Thus your question is hard to follow. You claim that you do not have Serlvet, but apparently you have.

It is possible to consume REST backend with Vaadin apps. Vaadin is quite agnostic what comes to backend / business logic. So your application data can come from database server, REST … You just need some other library to use them.

Thanks. Let me try to explain again.

Jetty is a Servlet container. So you can run Vaadin app on it.

I know. We don’t want to use Jetty. Instead we want to use our vlingo-http server to serve our Vaadin-based UI and also for our own REST resources for our services.

Thus your question is hard to follow. You claim that you do not have Serlvet, but apparently you have.

Our vlingo-http server doesn’t support the Servlet API and we don’t want to add in support for the Servlet API to our vlingo-http server just for Vaadin to use. The Servlet API is quite old and rarely used in most projects today.

It is possible to consume REST backend with Vaadin apps. Vaadin is quite agnostic what comes to backend / business logic. So your application data can come from database server, REST … You just need some other library to use them.

I know, but again we don’t want to use Jetty at all. We want to use our vlingo-http server for everything.

The question remains. Is there any means by which Vaadin itself can run other than with a Servlet-based server?

Best,
Vaughn

Our vlingo-http server doesn’t support the Servlet API and we don’t want to add in support for the Servlet API to our vlingo-http server just for Vaadin to use.

Vaadin server logic runs with Java, so you need to have Servlet 3.1 container with JVM to run it. There is no way to avoid that. So it is simply not possible to run Vaadin app with bare http server like Apache, etc.

I would recommend to use Serlvet container like Jetty or Tomcat in addition to your http server. You can use http server as proxy tp the container.

Thanks for the facts.

I would recommend to use Serlvet container like Jetty or Tomcat in addition to your http server. You can use http server as proxy tp the container.

Do you mean to embed the Jetty container in the services/apps that use Vaadin?

How do you propose that the proxy from vlingo-http to Jetty would work?