Java 我可以在com.sun.net.httpserver.httpserver上运行JAX-RS web服务吗?

Java 我可以在com.sun.net.httpserver.httpserver上运行JAX-RS web服务吗?,java,jax-rs,Java,Jax Rs,我可以运行这样一个简单的Web服务吗: @Path("/rs/hello") public class HelloWorldProgram { //path is default @GET @Produces(MediaType.TEXT_HTML) public String sayHello() { return "Hello, World!"; } @GET @Produces(MediaType.TEXT_XML

我可以运行这样一个简单的Web服务吗:

@Path("/rs/hello")
public class HelloWorldProgram {

    //path is default
    @GET
    @Produces(MediaType.TEXT_HTML)
    public String sayHello() {
        return "Hello, World!";
    }

    @GET
    @Produces(MediaType.TEXT_XML)
    @Path("/xml")
    public String sayXMLHello() {
        return "<?xml version=\"1.0\"?>" + "<hello> Hello" + "</hello>";
    }
}
@Path(“/rs/hello”)
公共类HelloWorld程序{
//路径是默认的
@得到
@生成(MediaType.TEXT\u HTML)
公共字符串sayHello(){
返回“你好,世界!”;
}
@得到
@生成(MediaType.TEXT\u XML)
@路径(“/xml”)
公共字符串sayXMLHello(){
返回“+”Hello“+”;
}
}

在与JDK simple web server捆绑的服务器上
com.sun.net.httpserver.httpserver

否,您不能使用com.sun.net.httpserver.httpserver。您需要一个与Servlet API兼容的服务器。例如,您可以使用org.glassfish.grizzly.http.server.HttpServer:

import java.net.URI;

import javax.ws.rs.core.UriBuilder;

import org.glassfish.grizzly.http.server.HttpServer;
import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory;
import org.glassfish.jersey.server.ResourceConfig;

public class Server {

    public static void main(String[] args) throws InterruptedException {
        URI uri = UriBuilder.fromUri("http://localhost/").port(8888).build();
        ResourceConfig rc = new ResourceConfig(HelloWorldProgram.class);
        HttpServer server = GrizzlyHttpServerFactory.createHttpServer(uri, rc);
        Thread.currentThread().join(); // keep running
    }
}

您需要依赖于。

是的,您可以。看看Jersey的“helloworld pure jax rs”示例:

如果可以,您是否尝试过?我不知道如何向服务器提供带注释的类这个grizzly2东西有多重?作为maven依赖项及其所有依赖项的大小(mb)。@mist jersey-container-grizzly2-servlet 2.10及其所有依赖项的大小为5.6 mb,但是它已经包括jersey(JAX-RS framework)注意:README.MD文件声明“这将使用Grizzly容器部署示例。”。但它确实使用com.sun.net.httpserver.httpserver