2014-07-06 36 views
0

爲我的pom.xml添加一個依賴關係。代碼使用RESTFull API和靜態網站的獨立Java應用程序

<dependency> 
     <groupId>org.glassfish.jersey.containers</groupId> 
     <artifactId>jersey-container-grizzly2-http</artifactId> 
     <version>2.10.1</version> 
    </dependency> 

主要部分:

public static void main(String[] args) { 
    final URI baseUri = UriBuilder.fromUri("http://localhost").port(9998).build(); 

    //add test configs 
    Set rest = new HashSet<Class>(); 
    rest.add(TestResource.class); 
    final ResourceConfig config = new ResourceConfig(rest); 

    HttpServer server = GrizzlyHttpServerFactory.createHttpServer(baseUri, config); 


    try { 
     //server.getServerConfiguration().addHttpHandler(new StaticHttpHandler("web/"),"/w"); 

     server.getServerConfiguration().addHttpHandler(new StaticHttpHandler("src/main/resources/web"),"/"); 

     server.start(); 
     System.out.println(); 
     System.out.println("Press enter to stop the server..."); 
     System.in.read(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     server.shutdownNow(); 
    } 


} 

我這樣的情況下,API不工作,但靜態網頁被部署到「/」工作。 Please check this screen.

然後當我改變的代碼幾行:

server.getServerConfiguration().addHttpHandler(new StaticHttpHandler("src/main/resources/web"),"/www"); 

API和靜態網頁的工作,但心不是網站,在「/」其在「/ WWW」。 Please check this.

你能幫我找到工作在「/ api」和靜態網站在「/」的API嗎?

回答

1

創建這樣的基本URI:

final URI baseUri = UriBuilder.fromUri("http://localhost/api").port(9998).build(); 
+0

謝謝。但沒有幫助:(然後相同。 –

+0

嗯,在這個改變後,它爲我工作。你究竟想達到什麼目的?:) – alexey

0

您可以通過包括你想它擴展並與像/*.jpg模式,*。html的,靜態的處理程序管理解決此...

這樣的服務器應該能選擇合適的處理程序。

+0

謝謝。我嘗試過,但沒有工作:( –

+0

你可以發佈你的新配置嗎? – vbazaga86

+0

server.getServerConfiguration()。addHttpHandler(新的StaticHttpHandler(「src/main/resources/web/*」),「/ www」); –