Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.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
以Grizzly作为可执行jar文件运行Jersey不起作用_Jersey_Grizzly - Fatal编程技术网

以Grizzly作为可执行jar文件运行Jersey不起作用

以Grizzly作为可执行jar文件运行Jersey不起作用,jersey,grizzly,Jersey,Grizzly,我正在开发一个基于Jersey的应用程序,并使用Grizzly测试该应用程序。只要我从Eclipse运行它,一切都很好!然而,当我导出到一个可运行的Jar并在Windows7命令提示符下执行时,我始终会收到下面的错误消息:我的主方法已列出,我缺少了什么。(谢谢你的帮助) private static final String PORT=“8899”; 专用静态最终字符串计算机=”http://localhost"; 私有静态最终字符串MAIN_PACKAGE=“aklero.idea.persi

我正在开发一个基于Jersey的应用程序,并使用Grizzly测试该应用程序。只要我从Eclipse运行它,一切都很好!然而,当我导出到一个可运行的Jar并在Windows7命令提示符下执行时,我始终会收到下面的错误消息:我的主方法已列出,我缺少了什么。(谢谢你的帮助)

private static final String PORT=“8899”;
专用静态最终字符串计算机=”http://localhost";
私有静态最终字符串MAIN_PACKAGE=“aklero.idea.persistence”;
私有静态最终字符串JERSEY\u PACKAGE=“com.sun.JERSEY.config.property.packages”;
私有静态最终字符串MACHINE_URI=MACHINE+“:“+PORT+”/”;
公共静态void main(字符串[]args)引发IOException
{
最后一个字符串baseUri=机器\ URI;
final Map initParams=new HashMap();
initParams.put(JERSEY_包,主_包);
System.out.println(“启动灰熊…”);
SelectorRead threadSelector=GrizzlyWebContainerFactory.create(baseUri,initParams);
System.in.read();
threadSelector.stopEndpoint();
系统出口(0);
}
我得到的错误是:

严重:ResourceConfig实例不包含任何根资源类

2011年4月28日下午12:42:56 com.sun.grizzly.http.servlet.ServletAdapter doService

严重:服务异常:

com.sun.jersey.api.container.ContainerException:ResourceConfig实例没有

包含任何根资源类

请访问com.sun.jersey.server.impl.application.RootResourceUriRules


(RootResourceUriRules.java:103)

显然这与Eclipse的导出选项有关

我也有同样的问题。 解决方案是手动添加资源文件

更改两个变量:

private static final String MAIN_PACKAGE = "yourpackage2.MyApplication";
private static final String JERSEY_PACKAGE = "javax.ws.rs.Application";
并创建此文件:

package yourpackage2;

import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.core.Application;

public class MyApplication extends Application {
    public Set<Class<?>> getClasses() {
        Set<Class<?>> s = new HashSet<Class<?>>();
        s.add(yourpackage1.ResourceClass1.class);
        //s.add(...); and so on
        return s;
    }
}
打包你的包2;
导入java.util.HashSet;
导入java.util.Set;
导入javax.ws.rs.core.Application;
公共类MyApplication扩展了应用程序{

public Set>s=new HashSetI也有同样的问题,除了手动创建runnable JAR之外,您是否已经找到了解决方案?
package yourpackage2;

import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.core.Application;

public class MyApplication extends Application {
    public Set<Class<?>> getClasses() {
        Set<Class<?>> s = new HashSet<Class<?>>();
        s.add(yourpackage1.ResourceClass1.class);
        //s.add(...); and so on
        return s;
    }
}