我有一個簡單的項目來測試JAX-RS服務。昨天我下載了jersey-1.7.1,並使用com.sun.jersey.api.container.httpserver.HttpServerFactory和com.sun.net.httpserver.HttpServer創建了一個http服務器,以便在eclipse中測試我的服務(無重複重量容器)球衣和jax-rs RI2 - 缺少HttpServerFactory
今天,我下載了最新的澤西罐(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 - 從球衣下載頁面最新JAXRS裏罐子,什麼是推薦的方式來創建一個簡單的HTTP服務器的命令行測試是否1.7.1方式有已被棄用。 什麼罐子下載/包括,也許是一個短代碼示例?
2 - 關於使用java創建一個簡單的REST服務的整個文檔是一團糟。那麼你如何找到正確的信息呢? (真的,這不是一個笑話,也許這需要一個單獨的博客文章 - 看看亂七八糟,改變的API,沒有關於棄用功能的信息,實現差異,例如CXF vs. jersey,API 1.x VS API 2.0,Glassfish的容器v中XY對Tomcat中,Y的對Y的版本X2 x版本,servlet的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);
}
}
謝謝。可能這是阻力最小的路徑。我用一個工作示例更新了這個問題。 – rjha94
我正在嘗試此操作,並在運行時遇到NoClassDefFoundError:com/google/common/base/Function。 – ash
在此處找到它,http://mirrors.ibiblio.org/pub/mirrors/maven2/com/google/collections/google-collections/0.9/google-collections-0.9。罐子,但這似乎是一個兔子洞......另一個缺失的依賴。呸。 – ash