I am trying to run HTTPServer as well as a REST handler. Only one works at a time, unable to make it work at the same time. I need to serve html pages as well as api.
here is my code.
public class HttpServer { private final UndertowJaxrsServer server = new UndertowJaxrsServer(); private static String rootPath = System.getProperty("user.dir"); private final Undertow.Builder serverBuilder; public HttpServer(Integer port, String host) { serverBuilder = Undertow .builder() .addHttpListener(port, host) .setHandler( Handlers.path().addPrefixPath( "/", Handlers.resource( new FileResourceManager(new File( rootPath + "/web"), 100)) .addWelcomeFiles( rootPath + "/web/index.html"))); server.start(serverBuilder); } public DeploymentInfo deployApplication(String appPath, Class<? extends Application> applicationClass) { ResteasyDeployment deployment = new ResteasyDeployment(); deployment.setApplicationClass(applicationClass.getName()); return server.undertowDeployment(deployment, appPath); } public void deploy(DeploymentInfo deploymentInfo) throws ServletException { server.deploy(deploymentInfo); } public static void main(String[] args) throws ServletException { HttpServer myServer = new HttpServer(8080, "0.0.0.0"); DeploymentInfo di = myServer .deployApplication("/rest", MyApplication.class) .setClassLoader(HttpServer.class.getClassLoader()) .setContextPath("/my").setDeploymentName("My Application"); myServer.deploy(di); } }
Ramsh source share