2016-03-31 37 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