目的
由于官方文档有些地方不够详细,在根据文档做的时候走了一些弯路,因此做个记录以避免再次踩坑,如需直接查官方文档请跳转至文章末尾。
实现步骤:
1、创建项目,导入包,这两个jar在EOS7.5的应用WEB-INFlib目录下都可以找到
创建一个构建包
2、打开当前项目下的web.xml,可以看到resteasyservlet的servlet-mapping中对应的url路径是/rest/services/*,即说明当访问路径是rest/services/下的地址才能访问到我们的restful接口(注意是带‘s’的services,当时就是因为这个一直报错找到不到资源)
3、创建一个数据实体,作为返回参数使用
4、创建一个class,添加下列注解和代码,配置接口访问的入口,需要注意的是Path中的路径必须是与web.xml中resteasyservlet配置的相同,否则将无法访问到接口,此处我们配置在/rest/services下
package com.eos.restful.service;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import com.eos.foundation.data.DataObjectUtil;
import commonj.sdo.DataObject;
// Path中的前缀路径必须与web.xml中resteasyservlet配置的相同
@Path("/rest/services/RoleService")
@Produces({"application/json"})
public class RoleService {
@GET
@Path("/getRoleById/{roleId}")
public DataObject getRoleById(@PathParam("roleId") String roleId) {
DataObject role = DataObjectUtil.createDataObject("com.eos.restful.dataset.CapRole");
role.set("roleId", roleId);
role.set("roleName", "试着奔跑的菜鸟");
return role;
}
}
5、在编辑的java同目录下创建文件restconfig.properties并录入以下内容(等号后是对应的配置类全限定名称)
resteasy.resources=com.eos.restful.service.RoleService
如果有多个REST服务类,以英文逗号","分开(可參考普元官方文档)
6、编辑web.xml文件,在rest.config.locations下的param-value标签下新增restconfig.properties对应路径,需要增加英文逗号与已有内容分开,保存编辑后需要右键web.xml文件进行部署。
7、启动服务器,访问http://127.0.0.1:8080/default/rest/services/RoleService/getRoleById/123
注意事项:
1.修改了web.xml要手动部署web.xml
2.web.xml中的servlet-mapping下的url-pattern要和配置访问的地址对应
参考链接:
才疏学浅,如文中有错误,感谢大家指出。