WebService实例-CRM系统提供WebService实现用户注册功能
<—start—>
编写crm的webservice接口,实现客户信息保存操作。在CustomerService接口中新增一个服务接口,用于添加客户注册的信息。
1 @Path("/customer") 2 @POST 3 @Consumes({ "application/xml", "application/json" }) 4 public void regist(Customer customer);
在实现类中,只需要调用dao的save方法保存以下就可。
1 @Override 2 public void regist(Customer customer) { 3 System.out.println(customer); 4 customerRepository.save(customer); 5 }
因为save方法jpa接口中默认就有,所以不需要自定义去创建方法。
接下来就是在CustomerAction类中调用服务了。
调用webservice连接crm保存客户信息:发送json类型的数据,调用post方法将customer传递过去,客户注册就要保存到后台数据库,所以用post方法去添加。
1 @ParentPackage("json-default") 2 @Namespace("/") 3 @Controller 4 @Scope("prototype") 5 public class CustomerAction2 extends BaseAction<Customer> { 6 @Action(value="customer_sendSms") 7 public String sendSms() throws IOException{ 8 //生成短信验证码 9 String randomCode = RandomStringUtils.randomNumeric(4); 10 //将短信验证码保存到session中 11 ServletActionContext.getRequest().getSession().setAttribute(model.getTelephone(),randomCode); 12 //编辑短信内容 13 String msg = "你好!本次获取的验证码位:"+randomCode; 14 //调用SMS服务发送短信 15 //String result = SmsUtils.sendSmsByHTTP(model.getTelephone(),msg); 16 String result = "000/XXX"; 17 if(result.startsWith("000")){ 18 //以"000"开头表示短信发送成功 19 return NONE; 20 }else{ 21 //发送失败,就抛出一个运行期异常 22 throw new RuntimeException("短信发送失败,信息码:"+result); 23 } 24 } 25 26 //属性驱动接收页面填写的验证码 27 private String checkCode; 28 public void setCheckCode(String checkCode) { 29 this.checkCode = checkCode; 30 } 31 @Action(value="customer_regist",results={@Result(name="success",type="redirect",location="signup_success.html"), 32 @Result(name="input",type="redirect",location="signup.html")}) 33 public String regist(){ 34 //先校验短信验证码,如果不通过就跳回登录页面 35 //从session中获取之前生成的短信验证码 36 String checkcodeSession = (String) ServletActionContext.getRequest().getAttribute(model.getTelephone()); 37 if(checkcodeSession==null||!checkcodeSession.equals(checkCode)){ 38 System.out.println("短信验证码错误!"); 39 //短信验证码错误 40 return INPUT; 41 } 42 //调用webservice连接crm保存客户信息 43 WebClient.create("http://localhost:9002/crm_management/services/customerService/customer").type(MediaType.APPLICATION_XML) 44 .post(model); 45 System.out.println("客户注册成功..."); 46 return SUCCESS; 47 } 48 }
<—end—>