开发Restful服务
创建服务实现类
创建一个class,添加下列注解和代码,配置接口访问的入口,需要注意的是Path中的路径必须是与web.xml中resteasyservlet配置的相同,否则将无法访问到接口,此处我们配置在/rest/services下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| package com.xcmg.service;
import java.util.*;
import javax.sql.DataSource; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces;
import com.alibaba.fastjson.JSON; import com.eos.common.connection.DataSourceHelper; import com.eos.engine.component.ILogicComponent; import com.eos.foundation.data.DataObjectUtil; import com.eos.workflow.api.BPSServiceClientFactory; import com.primeton.components.rest.annotation.JSONParam; import com.primeton.ext.engine.component.LogicComponentFactory; import com.xcmg.getRsInfo;
import commonj.sdo.DataObject;
@Path("/rest/services/RoleService") @Produces({"application/json"}) public class ProcessStartService { @POST @Path("/addProcess") public String addRole(@JSONParam("role")DataObject[] role)throws Throwable{ Map ms= new HashMap(); role = DataObjectUtil.convertDataObjects(role,"com.primeton.eos.Advice.Advice",false); System.err.println(role.length); for (int i = 0; i < role.length; i++) { Object[] inParameters = { role[i].get("proposer"), role[i].get("department"), role[i].get("phone"), role[i].get("category"), role[i].get("carrydepartment"), role[i].get("proposal"), role[i].get("actuality"), role[i].get("improvement") }; Object[] params = new Object[1]; params[0] = role; Object[] result = null; String userid= (String)role[i].get("state"); BPSServiceClientFactory.getLoginManager().setCurrentUser(userid, "sysadmin"); ILogicComponent logicComponent = LogicComponentFactory.create("com.primeton.eos.phoneProcess"); result = logicComponent.invoke("StartProcess", inParameters); String count = (String)result[0]; Long id = (Long)result[1]; System.err.println("-----------------------》》"+count); if(count.equals("1")){ ms.put("errorCode","00100"); ms.put("errorMsg", "新增数据成功"); ms.put("value",id); }else{ ms.put("errorCode","00200"); ms.put("errorMsg", "新增数据失败"); ms.put("value",""); } } return JSON.toJSONString(ms); } @GET @Path("/getProcess/{productCode}") public String selectEngineNumberInfoCount(@PathParam("productCode")String productCode) throws Throwable{ Map ms= new HashMap(); DataSource db = DataSourceHelper.getDataSource("default"); String vininfo = "SELECT a.PROCESSINSTID,a.PROPOSER,b.NAME DEPARTMENT,a.PHONE,c.NAME CATEGORY,d.NAME CARRYDEPARTMENT,a.PROPOSAL,a.ACTUALITY,a.IMPROVEMENT,a.SUBMITTIME,a.OPINION1,a.CHECKTIME,a.OPINION2,a.RECHECKTIME,a.STATE FROM ((ADVICE a LEFT JOIN DEPARTMENT b ON a.DEPARTMENT=b.DID)LEFT JOIN CATEGORY c ON a.CATEGORY=c.ID)LEFT JOIN CARRYDEPARTMENT d ON a.CARRYDEPARTMENT=d.ID WHERE PHONE = '"+productCode+"' ORDER BY PROCESSINSTID DESC"; List list = getRsInfo.getRsListbySql(vininfo, db.getConnection()); return JSON.toJSONString(list); } }
|
创建配置文件
在编辑的java同目录下创建文件restconfig.properties并录入以下内容(等号后是对应的类全名)
1
| resteasy.resources=com.xcmg.service.ProcessStartService
|
编辑web.xml文件
编辑web.xml文件,在rest.config.locations下的param-value标签下新增restconfig.properties对应路径,需要增加英文逗号与已有内容分开,保存编辑后需要右键web.xml文件进行部署。
注意事项:
1.修改了web.xml要手动部署web.xml
2.web.xml中的servlet-mapping下的url-pattern要和配置访问的地址对应
3.在rest.config.locations下的param-value标签下新增restconfig.properties对应路径