Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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 使用内置HTTP服务器运行Jersey_Java_Jersey - Fatal编程技术网

Java 使用内置HTTP服务器运行Jersey

Java 使用内置HTTP服务器运行Jersey,java,jersey,Java,Jersey,我正在尝试使用内置的HTTP服务器从命令行运行一个简单的Jersey应用程序 根据各种教程,我将我的应用程序设置为: src/main/java/net/wjlafrance/jerseyfun/App.java: src/main/webapp/WEB-INF/WEB.xml: 很明显,我的服务器配置错误。有人能给我指出正确的方向吗?请参阅错误消息中的这一行“ResourceConfig实例不包含任何根资源类”? 您没有为http服务器设置任何资源。 我将使用以下方法: GrizzlyHttp

我正在尝试使用内置的HTTP服务器从命令行运行一个简单的Jersey应用程序

根据各种教程,我将我的应用程序设置为:

src/main/java/net/wjlafrance/jerseyfun/App.java:

src/main/webapp/WEB-INF/WEB.xml:

很明显,我的服务器配置错误。有人能给我指出正确的方向吗?

请参阅错误消息中的这一行“ResourceConfig实例不包含任何根资源类”? 您没有为http服务器设置任何资源。 我将使用以下方法:

GrizzlyHttpServerFactory.createHttpServer("http://localhost:9998/", new Application());
新的应用程序()将为http服务器创建一个新的ResourceConfig类。你应该检查jersey的文档,它只是一个包含java包的简单类。 我的ResourceConfig如下所示: 导入org.glassfish.jersey.server.ResourceConfig

public class Application extends ResourceConfig {
  public Application() {
    packages("ftp.recourse");
  }
}
而ftp.resource包包含所有路径和操作,如GET、PUT、POST。
查看泽西岛的官方文件了解更多详情。希望这会有所帮助

您应该执行以下操作:

final com.sun.jersey.api.core.ResourceConfig packagesResourceConfig = new com.sun.jersey.api.core.ResourceConfig("net.wjlafrance.jerseyfun") ;

HttpServerFactory.create("http://localhost:9998/", packagesResourceConfig).start();

对于Jersey 1.x,@pakOverflow的答案指向正确的方向。这里是我成功使用的完整代码。不依赖于Grizlly1或Grizlly2等

import java.io.IOException;
import java.util.HashSet;
import java.util.Set;

import javax.ws.rs.core.Application;

import com.sun.jersey.api.container.httpserver.HttpServerFactory;
import com.sun.jersey.api.core.DefaultResourceConfig;
import com.sun.jersey.api.core.ResourceConfig;

public class WineryUsingHttpServer {

    public static void main(String[] args) throws IOException {
        ResourceConfig packagesResourceConfig = new DefaultResourceConfig();
        Application app = new Application() {
            @Override
            public Set<Class<?>> getClasses() {
                Set<Class<?>> res = new HashSet<>();
                res.add(org.example.MainResource.class);
                return res;
            }
        };
        packagesResourceConfig.add(app);

        HttpServerFactory.create("http://localhost:8080/", packagesResourceConfig).start();
    }

}
import java.io.IOException;
导入java.util.HashSet;
导入java.util.Set;
导入javax.ws.rs.core.Application;
导入com.sun.jersey.api.container.httpserver.HttpServerFactory;
导入com.sun.jersey.api.core.DefaultResourceConfig;

导入com.sun.jersey.api.core.ResourceConfig; 使用HttpServer的公共类酿酒厂{ 公共静态void main(字符串[]args)引发IOException{ ResourceConfig PackageResourceConfig=新的DefaultResourceConfig(); 应用程序app=新应用程序(){ @凌驾 public Set>res=new HashSet(); res.add(org.example.MainResource.class); 返回res; } }; packagesResourceConfig.add(app); HttpServerFactory.create(“http://localhost:8080/,PackageResourceConfig.start(); } }
你能评论一下你使用的
pom.xml
?com.sun.jersey.api.core.ResourceConfig是抽象的;无法实例化
public class Application extends ResourceConfig {
  public Application() {
    packages("ftp.recourse");
  }
}
final com.sun.jersey.api.core.ResourceConfig packagesResourceConfig = new com.sun.jersey.api.core.ResourceConfig("net.wjlafrance.jerseyfun") ;

HttpServerFactory.create("http://localhost:9998/", packagesResourceConfig).start();
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;

import javax.ws.rs.core.Application;

import com.sun.jersey.api.container.httpserver.HttpServerFactory;
import com.sun.jersey.api.core.DefaultResourceConfig;
import com.sun.jersey.api.core.ResourceConfig;

public class WineryUsingHttpServer {

    public static void main(String[] args) throws IOException {
        ResourceConfig packagesResourceConfig = new DefaultResourceConfig();
        Application app = new Application() {
            @Override
            public Set<Class<?>> getClasses() {
                Set<Class<?>> res = new HashSet<>();
                res.add(org.example.MainResource.class);
                return res;
            }
        };
        packagesResourceConfig.add(app);

        HttpServerFactory.create("http://localhost:8080/", packagesResourceConfig).start();
    }

}