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

私が得ているエラー:

SEVERE: ResourceConfig インスタンスにルート リソース クラスが含まれていません。

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

SEVERE: サービス例外:

com.sun.jersey.api.container.ContainerException: ResourceConfig インスタンスが

ルート リソース クラスが含まれます。

com.sun.jersey.server.impl.application.RootResourceUriRules にあります。

(RootResourceUriRules.java:103)

4

2 に答える 2

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 に答える
0

どうやらこれは、Eclipse のエクスポート オプションと関係があるようです。

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

于 2011-05-16T14:17:36.823 に答える