2015-02-12 78 views
1

下面的代碼是我在netbeans中創建的新項目,但我使用MAVEN作爲項目類型。因爲我想創建一個像下面這樣的文件夾結構:你應該把應用程序擴展到jax.rs的類別

+ com.kixortillan.mavenproject1 
---+com.kixortillan.mavenproject1.controllers 
---+com.kixortillan.mavenproject1.models 

我不知道在哪裏放置擴展Application的類。我試圖把它com.kixortillan.mavenproject1和測試控制器com.kixortillan.mavenproject1.controllers但它顯示錯誤404

我打電話的URL爲http://localhost:8080/mavenproject1/services/test

ApplicationConfig類

package com.kixortillan.mavenproject1; 

import java.util.Set; 
import java.util.HashSet; 
import javax.ws.rs.core.Application; 

@javax.ws.rs.ApplicationPath("services") 
public class ApplicationConfig extends Application 
{ 
    @Override 
    public Set<Class<?>> getClasses() { 
     Set<Class<?>> s = new HashSet<Class<?>>(); 
     s.add(com.kixortillan.mavenproject1.controllers.TestResource.class); 
     return s; 
    } 
} 

測試控制器

package com.kixortillan.mavenproject1.controllers; 

import javax.ws.rs.core.Context; 
import javax.ws.rs.core.UriInfo; 
import javax.ws.rs.PathParam; 
import javax.ws.rs.Consumes; 
import javax.ws.rs.PUT; 
import javax.ws.rs.Path; 
import javax.ws.rs.GET; 
import javax.ws.rs.Produces; 

/** 
* REST Web Service 
* 
* @author NOC 
*/ 
@Path("test") 
public class TestResource 
{ 

    @Context 
    private UriInfo context; 

    /** 
    * Creates a new instance of TestResource 
    */ 
    public TestResource() 
    { 
    } 

    /** 
    * Retrieves representation of an instance of com.kixortillan.mavenproject1.controllers.TestResource 
    * @return an instance of java.lang.String 
    */ 
    @GET 
    @Produces("application/xml") 
    public String getXml() 
    { 
     //TODO return proper representation object 
     throw new UnsupportedOperationException(); 
    } 

    /** 
    * PUT method for updating or creating an instance of TestResource 
    * @param content representation for the resource 
    * @return an HTTP response with content of the updated or created resource. 
    */ 
    @PUT 
    @Consumes("application/xml") 
    public void putXml(String content) 
    { 
    } 
} 

非常感謝你能不能給我一個很大的細節教程事情JA是如何工作的x.rs

+0

是什麼_「我不能讓它工作」 _意味着有這個?你有錯誤/例外嗎?單獨的課程看起來很好。它的目的是以編程方式配置JAX-RS應用程序。有了這個,你不需要任何web.xml – 2015-02-12 06:10:03

+0

你能提供關於錯誤的細節嗎?您使用什麼URL訪問Web服務?另外,可以使用繼承的類來指定要作爲REST服務公開的類。否則,JAX RS運行時將掃描類路徑。 – asohun 2015-02-12 06:13:34

+0

我編輯了這個問題。抱歉讓你困惑。 – 2015-02-12 06:51:52

回答

0

你需要確保你的pom.xml

<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.0.1</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.containers</groupId> 
     <artifactId>jersey-container-servlet</artifactId> 
    </dependency>