JAX-RS サービスをテストするための単純なプロジェクトがあります。昨日、jersey-1.7.1 をダウンロードし、com.sun.jersey.api.container.httpserver.HttpServerFactory および com.sun.net.httpserver.HttpServer を使用して http サーバーを作成し、Eclipse 内からサービスをテストしました (w/oa 重いウエイトコンテナ)
今日、最新のジャージー jar (jaxrs-ri) をダウンロードしましたが、HttpServerFactory がありません。彼らは 1.7.1 => 2.0 の間でクラスを削除したように見えますが、廃止されたセクションでは見つかりません。API セクションに grizzly2 クラスが表示されます (おそらくそれを使用する必要があります) が、jaxrs-ri バンドルの jar のいずれもそれらのクラスを提供していません。jersey-grizzly 1.12 jar をダウンロードしましたが、com/sun/jersey/server/impl/container/grizzly2/GrizzlyContainer クラスしかなく、実装はありません。
親切な魂への質問
1 - jersey ダウンロード ページの最新の jaxrs-ri jar を使用して、1.7.1 の方法が非推奨になった場合にコマンド ラインからテストする単純な http サーバーを作成する推奨される方法は何ですか。ダウンロード/インクルードするjarファイルと、おそらく短いコードサンプル?
2 - Java を使用した単純な REST サービスの作成に関するドキュメント全体が非常に混乱しています。では、正しい情報を見つけるにはどうすればよいでしょうか。
(本当に、これは冗談ではありません。別のブログ投稿が必要になるかもしれません。混乱、変更された API、廃止された機能に関する情報、実装の違いに関する情報がないことを確認してください。たとえば、CXF と jersey、API 1.x と API 2.0、 Glassfish コンテナー v xy と Tomcat、y のバージョン x と y のバージョン x2、サーブレット 3.0 にはこのファイルがあります。アプリケーションを拡張していますか?)
アップデート
JDKHttpサーバーでの作業例
package test.jersey;
import java.net.URI;
import com.sun.net.httpserver.HttpServer;
import org.glassfish.jersey.jdkhttp.JdkHttpServerFactory ;
import org.glassfish.jersey.server.ResourceConfig;
public class ConsoleServerV2 {
static final String BASE_URI = "http://localhost:9099/";
public static void main(String[] args) throws Exception {
HttpServer server = null ;
ResourceConfig rc = new ResourceConfig(rest.Service.class);
URI endpoint = new URI(BASE_URI);
server = JdkHttpServerFactory.createHttpServer(endpoint,rc);
System.out.println("console v2.0 : Press Enter to stop the server. ");
System.in.read();
server.stop(0);
}
}