Closed jesse-gallagher closed 3 years ago
For now, at least, this is accomplished via a proxy webapp. It'd be good to be able to automatically deploy this or to find an alternate way (say, if WLP has a way to add a default servlet via an extension).
Rather than being deployed as a standalone war, it should be possible to make this a user feature, as the REST connector auto-deploys an app like we'd want: https://github.com/OpenLiberty/open-liberty/tree/c1a9e206cb22fdbdfcdc4b39b04327814f661929/dev/com.ibm.ws.jmx.connector.server.rest/src/com/ibm/ws/jmx/connector/server/rest
There's a lot going on in that feature, but it looks like the pertinent part may be just an OSGi "WAB": https://osgi.org/specification/osgi.cmpn/7.0.0/service.war.html
This is a real bear. I fiddled around a bunch with a WAB, but I'm not really sure if it's possible to use them on Open Liberty. OSGi-based development isn't supported for normal apps, but I'm not sure how much that applies for feature extensions. This would also be doable if there's an extension point to intercept either all requests, all responses, or (best) just requests that aren't bound to a given web app.
Failing all that, the .war file deployed to the "/" context root works.
The deployed .war doesn't quite work currently - it leads to a "Corrupted Content Error" when POSTing login credentials, which is a pretty big impediment. I'm not crazy about the proxy implementation, so it'd be worth doing another search for existing clean Java proxy implementations.
To make it so that this can "replace" the nHTTP stack as the entrypoint for HTTP in Domino, it could be worth adding an internal proxy for any unmatched URLs to pass through to Domino. Zuul may be a good option here. The route to do that may be to just add a default web app at the "/" context root that does the local proxying.