java - 使用 Java SE 发布 REST 服务

标签 java rest

我正在尝试找到一种使用 JAX-RS 2.0 和 Java SE 使用 Jersey 和/或 Java SE 内置 http 服务器发布我的 RESTful Web 服务的简单方法。

我想将我的依赖性保持在最低限度,所以我想避免 grizzly,也不想使用任何外部应用程序服务器。

你能告诉我如何根据这个要求发布休息服务吗?

提前致谢

我的意思是实现这样的目标:

public static void main(String args[]) {
    try {
        final HttpServer server = GrizzlyHttpServerFactory.createHttpServer("http://localhost:8080/calculator/",new ResourceConfig(SumEndpoint.class));

        System.in.read();
        server.stop();

} catch (IOException ex) {
}

...但要避免灰熊依赖

最佳答案

如果你只是依赖

<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-jdk-http</artifactId>
    <version>2.2</version>
</dependency>

然后就可以启动服务器了

JdkHttpServerFactory.createHttpServer(URI.create("http://localhost:8090/root"),
        new MyApplication());

其中 MyApplication 扩展 ResourceConfig 以获取资源扫描。

@ApplicationPath("/")
public class MyApplication extends ResourceConfig {

    public MyApplication() {
        packages("...");
    }
    @GET
    @Produces("text/plain")
    public Response foo() {

        return Response.ok("Hey, it's working!\n").build();
    }
}

可能有更好的方法来控制服务器生命周期,但我暂时还不知道。

关于java - 使用 Java SE 发布 REST 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18314608/

相关文章:

java - 为什么 JUnit 不提供 assertNotEquals 方法?

java - Jersey Inject Weld managed bean into ConstraintValidator

java - 如何在 IntelliJ IDEA 中调试 RESTful Web 服务的 JUnit 测试类?

ruby-on-rails-3 - 测试使用带有 Cucumber 的设计 token 可验证模块的 JSON API

java - 如何在 android/java 中使用矩阵移动和旋转 Canvas 中的位图?

java - 在java中使用分数

javafx : PieChart incorrect data handles MouseEvent

java - 如何使用 Google Cloud API - 用于文本检测的应用程序默认凭据

debugging - REST API 调试工具

java - 使用模拟器通过 Retrofit 将我的 REST API 与 Android Studio 连接起来