2011-11-22 55 views
3

我正在查看Jersey User Guide並嘗試使用Jersey Web服務和嵌入式Grizzly服務器設置Hello World示例。Hello World與澤西島和灰熊(來自用戶指南)

我正在運行第1節「入門」。我已經得到了代碼示例1.1節編譯就好了:

// The Java class will be hosted at the URI path "/helloworld" 
@Path("/helloworld") 
public class HelloWorldResource { 

    // The Java method will process HTTP GET requests 
    @GET 
    // The Java method will produce content identified by the MIME Media 
    // type "text/plain" 
    @Produces("text/plain") 
    public String getClichedMessage() { 
     // Return some cliched textual content 
     return "Hello World"; 
    } 
} 

但後來我得到第1.2節「部署根資源」,這就是我應該設置嵌入灰熊網服務器與測試我的資源:

public class Main { 

     public static void main(String[] args) throws IOException { 

      final String baseUri = "http://localhost:9998/"; 
      final Map<String, String> initParams = 
          new HashMap<String, String>(); 

      initParams.put("com.sun.jersey.config.property.packages", 
        "com.sun.jersey.samples.helloworld.resources"); 

     System.out.println("Starting grizzly..."); 
     SelectorThread threadSelector = 
       GrizzlyWebContainerFactory.create(baseUri, initParams); 
     System.out.println(String.format(
      "Jersey app started with WADL available at %sapplication.wadl\n」 + 
      「Try out %shelloworld\nHit enter to stop it...", baseUri, baseUri)); 
     System.in.read(); 
     threadSelector.stopEndpoint(); 
     System.exit(0); 
    }  
} 

的問題是,它似乎本用戶指南還沒有在一段時間更新,類GrizzlyWebContainerFactory不再存在!

我使用Jersery v 1.10和Grizzly v 1.9.41。

有人可以幫我重新創建這個例子嗎?我知道我可以在一個容器中運行Web服務,我有興趣通過最簡單的嵌入式服務器設置運行它,而不需要額外的資源(web.xml等)在我的項目中,只有2個類。

回答

7

我認爲答案是我需要包括jersey-grizzly依賴項,然後我可以按照用戶指南進行操作。

這是在所需的列表指定的依賴用戶指南規定:

非Maven的開發人員需要:

灰熊-servlet的webserver.jar,新澤西州的server.jar ,新澤西州core.jar添加, JSR311-api.jar中,asm.jar

由於Ryan Stewart的回答類似的問題。

+0

感謝您的收穫。我們會修好的。 –

+2

問題已提交:http://java.net/jira/browse/JERSEY-840 –

+0

太棒了!我喜歡用它來觀看這樣的事情!希望能夠幫助其他澤西新手避免混淆。 –