要在Java SE環境中部署JAX-RS應用程序,可以使用RuntimeDelegate
和JAX-RS實現支持的HTTP服務器。一個servlet容器不是必需的。
的JSR 339狀態如下:
在Java SE環境的端點類的配置實例可以使用的RuntimeDelegate
的createEndpoint
方法獲得。該應用程序提供Application
的實例和所需的端點類型。實現可以支持任意類型的零個或多個端點類型。
如何使用生成的端點類實例來發布應用程序超出了本規範的範圍。
新澤西州,在JAX-RS參考實現,支持range of HTTP servers,您可以使用部署在Java SE JAX-RS應用程序。
例如,Grizzly和RuntimeDelegate
,你可以有以下幾種:
public class Example {
public static void main(String[] args) {
ResourceConfig resourceConfig = new ResourceConfig();
resourceConfig.register(GreetingsResource.class);
HttpHandler handler = RuntimeDelegate.getInstance()
.createEndpoint(resourceConfig, HttpHandler.class);
HttpServer server = HttpServer.createSimpleServer(null, 8080);
server.getServerConfiguration().addHttpHandler(handler);
try {
server.start();
System.out.println("Press any key to stop the server...");
System.in.read();
} catch (Exception e) {
System.err.println(e);
}
}
@Path("/greetings")
public static class GreetingsResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getGreeting(){
return "Hello from the other side.";
}
}
}
的應用將可在http://localhost:8080/greetings
。
以下相關性所需要的上面示出的例子:
<dependency>
<groupId>org.glassfish.grizzly</groupId>
<artifactId>grizzly-http-server</artifactId>
<version>2.3.30</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-grizzly2-http</artifactId>
<version>2.25.1</version>
</dependency>
支持的其他實現方式包括:
Jersey documentation還描述了用於Java SE環境的其他部署備選方案,沒有RuntimeDelegate
。
我不想用tomcat glassfish和其他...只有ednpoint – Andrey