0

我开发了一个基于 Jersey 的应用程序并使用 Grizzly 来测试该应用程序。只要我从 Eclipse 运行它,一切正常!但是,当我导出到可运行的 Jar 并在 Windows 7 命令提示符下执行时,我一直收到以下错误消息:列出了我的主要方法,我缺少什么。(谢谢您的帮助)

private static final String PORT="8899";
private static final String MACHINE="http://localhost";
private static final String MAIN_PACKAGE="aklero.idea.persistence";
private static final String JERSEY_PACKAGE="com.sun.jersey.config.property.packages";
private static final String MACHINE_URI=MACHINE+":"+PORT+"/";

public static void main(String[] args) throws IOException
{
    final String baseUri = MACHINE_URI;
    final Map<String, String> initParams = new HashMap<String, String>();      
    initParams.put(JERSEY_PACKAGE, MAIN_PACKAGE);
    System.out.println("Starting grizzly...");
    SelectorThread threadSelector = GrizzlyWebContainerFactory.create(baseUri, initParams);
    System.in.read();
    threadSelector.stopEndpoint();
    System.exit(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)

4

2 回答 2

0

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

http://jersey.576304.n2.nabble.com/Cant-get-Jersey-running-in-embedded-Grizzly-td2915843.html

于 2011-05-16T14:17:36.823 回答
0

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

更改您的 2 个变量:

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;
    }
}

在 Eclipse 中创建 jar 时,激活单选按钮“将所需的库打包到生成的 JAR 中”

如果您使用了其他 jar,请在启动程序时将它们包含到您的类路径中。只需: java -cp ./DIR1;./DIR2;./DIR3 -jar myJAR.jar

于 2012-01-30T22:42:34.710 回答