3

ejre で restlet を実行しようとしています。通常の jre を使用した Eclipse では、コードは問題なく動作しますが、ejre では次の例外が発生します。

java.lang.ClassNotFoundException: com.sun.net.httpserver.HttpHandler cannot be found

私はrestlet v. 2.2.1を使用しています。jee および Java SE Embedded Runtime Environment 用 (ビルド 1.7.0_21-b11、ヘッドレス) Java HotSpot Embedded Client VM (ビルド 23.21-b01、混合モード)

restlet v.2.1 を試してみました。ここで述べたように、しかしそれはうまくいきませんでした。

誰かに同様の問題がありましたか?

4

2 に答える 2

3

あなたの質問に(部分的に)答える前に、いくつか説明しなければなりません。Restlet フレームワークは API と実装を提供し、複数の環境 (従来の JVM、サーブレット コンテナー、android、gwt、gae) でそれらを提供しようとしています。これらの環境は JDK の一部のみをサポートするため (たとえば、GWT はサーバー コードを嫌います)、フレームワークの「エディション」と呼ばれるものを提供することで、この制約に対処します ( http://restlet.com/learn/guide/2.2/editionsを参照)。 / )。

ejre のコンテキストでは、JDK 軽量サーバーに基づく内部サーバー コネクタがサポートされていないことを理解しています。あなたを助けるために、私たちは新しい版を紹介することができます (このチケットhttps://github.com/restlet/restlet-framework-java/issues/939を参照してください)。

すぐに提供できるかどうかわからないので、JVM 内で HTTP サーバーを実行するつもりなのか、それとも単にクライアント リクエストを発行したいだけなのかを教えてください。この場合、前にこれらの手順を実行してみてください (テストされていません)。

org.restlet.engine.Engine.register(false);
Engine.getInstance().getRegisteredClients().add(new org.restlet.engine.connector.HttpClientHelper(null));
于 2014-08-07T15:16:48.770 に答える
1

この問題がありました org.restlet.jee を 2.0.15 から 2.2.0 にアップグレードしています

クラスをmavenの依存関係に追加する必要がありました

    <dependency>
        <groupId>com.sun.net.httpserver</groupId>
        <artifactId>http</artifactId>
        <version>20070405</version>
    </dependency>
于 2016-05-09T17:54:43.080 に答える