Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jersey和jax rs RI2-缺少HttpServerFactory_Java_Jersey_Jax Rs_Grizzly - Fatal编程技术网

Java jersey和jax rs RI2-缺少HttpServerFactory

Java jersey和jax rs RI2-缺少HttpServerFactory,java,jersey,jax-rs,grizzly,Java,Jersey,Jax Rs,Grizzly,我有一个简单的项目来测试JAX-RS服务。昨天我下载了jersey-1.7.1,并使用com.sun.jersey.api.container.httpserver.HttpServerFactory和com.sun.net.httpserver.httpserver创建了一个http服务器,以从eclipse内部测试我的服务(不带重型容器) 今天,我下载了最新的jersey JAR(jaxrs ri),HttpServerFactory不见了。看起来他们删除了1.7.1=>2.0之间的类,但我

我有一个简单的项目来测试JAX-RS服务。昨天我下载了jersey-1.7.1,并使用com.sun.jersey.api.container.httpserver.HttpServerFactory和com.sun.net.httpserver.httpserver创建了一个http服务器,以从eclipse内部测试我的服务(不带重型容器)

今天,我下载了最新的jersey JAR(jaxrs ri),HttpServerFactory不见了。看起来他们删除了1.7.1=>2.0之间的类,但我在弃用部分找不到它。我在API部分看到了grizzly2类(也许这就是我现在应该使用的),但JAXRSRI包中的JAR都不提供这些类。我下载了jersey grizzly 1.12 jar,但它只有com/sun/jersey/server/impl/container/grizzly2/GrizzlyContainer类,没有实现

所以,向善良的灵魂提问

1-使用jersey下载页面上最新的jaxrs ri jars,如果1.7.1方法已被弃用,建议使用什么方法创建一个简单的http服务器来从命令行进行测试。 下载/包含哪些JAR,可能还有一个简短的代码示例

2-关于使用java创建一个简单REST服务的整个文档都是一团糟。那么你如何找到正确的信息呢

(真的,这不是一个玩笑。也许这需要一篇单独的博文-看看混乱,改变了API,没有关于不推荐的特性的信息,实现差异,例如CXF与jersey,API 1.x与API 2.0,Glassfish容器Vx.y与Tomcat,y的x版本与y的x2版本,servlet 3.0将有这个文件,您是否扩展应用程序不管你是不是爱!)

更新

JDKHttp服务器的工作示例

package test.jersey;

import java.net.URI;
import com.sun.net.httpserver.HttpServer;
import org.glassfish.jersey.jdkhttp.JdkHttpServerFactory ;
import org.glassfish.jersey.server.ResourceConfig;

public class ConsoleServerV2 {

    static final String BASE_URI = "http://localhost:9099/";

    public static void main(String[] args) throws Exception {
        HttpServer server = null ;

        ResourceConfig rc = new ResourceConfig(rest.Service.class);
        URI endpoint = new URI(BASE_URI);

        server = JdkHttpServerFactory.createHttpServer(endpoint,rc);
        System.out.println("console v2.0 : Press Enter to stop the server. ");
        System.in.read();
        server.stop(0);

    }
}

请试试这个灰熊2包

您可以使用JdkHttpServerFactory,它可以在以下位置获得:


无需调用server.start()!

您也可以从这里获取捆绑包
只需将其添加到库文件夹中,然后在项目中右键单击它并选择“添加为库”

hi@alexey,我会试试。你有没有代码示例可以用grizzly embedded server测试jersey?当然,jersey workspace中有很多示例,例如helloworld:对不起,还有一个问题,为什么grizzly http servlet server需要servlet?我不能简单地使用http server吗?servlet不是必需的,只是w如果你需要它,我会很安全。这是一个简单的httpserver包:谢谢。可能这是阻力最小的路径。我已经用一个工作示例更新了这个问题。我正在尝试这个问题,并在运行时遇到NoClassDefFoundError:com/google/common/base/Function。在这里找到了它,但这似乎是一个兔子洞…另一个缺少的d依附,呸。
ResourceConfig rc = new ResourceConfig(HelloWorldResource.class);
HttpServer server = JdkHttpServerFactory.createHttpServer(baseUri, rc);