2016-03-31 68 views
0

我是用Java創建Web服務的新手,因此是個問題。在JavaEE中創建Web服務

我有一個對象,

public class Course { 

    private int _id; 
    private String _name; 
    private Person _person; 
} 

我對存儲在一個文件中的對象,我已經分析並存儲在本地數組列表數據。

我的DataService對象執行此操作。

public DataService(){ 

     _personList = new ArrayList<>(); 
     _courseList = new ArrayList<>(); 

     //logic to parse data and read into a QueryHandler object. 

     _handler = new QueryHandler(_personList, _courseList); 

    } 

現在這個數據服務有一個GET方法,它顯示所有課程的列表。

@GET 
    @Produces("application/JSON") 
    public ArrayList<Course> getAllCourses(){ 
     return _handler.getAllCourses(); 

    } 

我的問題是我怎麼揭露這種方法作爲終點,使主叫方可以得到像example.com/getAllCourses或類似example.com/getCourseById/21(法已經創建),這將在JSON格式返回數據什麼聯繫嗎?

回答

1

您必須添加@Path("/course")到您的類和改變你的方法

@GET 
@Path("/getAllCourses") 
@Produces("application/JSON") 
public ArrayList<Course> getAllCourses(){ 
    return _handler.getAllCourses(); 

} 

如果你想獲得一個特定的ID,你會寫

@GET 
@Path("getCourseById/{id}") 
@Produces("application/JSON") 
@Consumes("application/JSON") 
public Course getCourseById(@PathParam("id") int id){ 
    return _handler.getCourseById(id); 

} 

路徑將是host.com/course/getAllCourseshost.com/course/getCourseByid/1例如

這是關於它的文檔JAX-RS

+0

只有一個疑問,我的應用程序使用GlassFish作爲服務器,我如何在瀏覽器上訪問這些API。 – Zeus

+0

你在使用maven嗎? –

+0

不,我正在使用Gradle構建系統。 – Zeus