<—start—> 
编写crm的webservice接口,实现客户信息保存操作。在CustomerService接口中新增一个服务接口,用于添加客户注册的信息。

 @Path("/customer")
@POST
@Consumes({ "application/xml", "application/json" })
public void regist(Customer customer);

在实现类中,只需要调用dao的save方法保存以下就可。

 @Override
public void regist(Customer customer) {
System.out.println(customer);
customerRepository.save(customer);
}

因为save方法jpa接口中默认就有,所以不需要自定义去创建方法。 
接下来就是在CustomerAction类中调用服务了。 
调用webservice连接crm保存客户信息:发送json类型的数据,调用post方法将customer传递过去,客户注册就要保存到后台数据库,所以用post方法去添加。

 @ParentPackage("json-default")
@Namespace("/")
@Controller
@Scope("prototype")
public class CustomerAction2 extends BaseAction<Customer> {
@Action(value="customer_sendSms")
public String sendSms() throws IOException{
//生成短信验证码
String randomCode = RandomStringUtils.randomNumeric(4);
//将短信验证码保存到session中
ServletActionContext.getRequest().getSession().setAttribute(model.getTelephone(),randomCode);
//编辑短信内容
String msg = "你好!本次获取的验证码位:"+randomCode;
//调用SMS服务发送短信
//String result = SmsUtils.sendSmsByHTTP(model.getTelephone(),msg);
String result = "000/XXX";
if(result.startsWith("000")){
//以"000"开头表示短信发送成功
return NONE;
}else{
//发送失败,就抛出一个运行期异常
throw new RuntimeException("短信发送失败,信息码:"+result);
}
} //属性驱动接收页面填写的验证码
private String checkCode;
public void setCheckCode(String checkCode) {
this.checkCode = checkCode;
}
@Action(value="customer_regist",results={@Result(name="success",type="redirect",location="signup_success.html"),
@Result(name="input",type="redirect",location="signup.html")})
public String regist(){
//先校验短信验证码,如果不通过就跳回登录页面
//从session中获取之前生成的短信验证码
String checkcodeSession = (String) ServletActionContext.getRequest().getAttribute(model.getTelephone());
if(checkcodeSession==null||!checkcodeSession.equals(checkCode)){
System.out.println("短信验证码错误!");
//短信验证码错误
return INPUT;
}
//调用webservice连接crm保存客户信息
WebClient.create("http://localhost:9002/crm_management/services/customerService/customer").type(MediaType.APPLICATION_XML)
.post(model);
System.out.println("客户注册成功...");
return SUCCESS;
}
}

<—end—>

WebService实例-CRM系统提供WebService实现用户注册功能的更多相关文章

  1. CRM系统全方位管理企业

    您在选择一款CRM系统的时候,首先要考虑销售团队的感受和意见.让CRM系统在帮助销售团队优化工作流程的同时,更好地对销售团队进行管理.销售人员每卖出一件商品,要从寻找筛选商机开始,经过沟通客户需求.满 ...

  2. 2021年主流CRM系统盘点

    面对市面上五花八门的CRM系统,相信您在选择的时候肯定是一头雾水.哪个CRM系统功能最强大?哪个CRM系统性价比最高?哪个CRM系统最适合企业使用?本篇文章小编将选出几家有代表性的CRM系统,并进行对 ...

  3. 通过CRM系统实现工作流程自动化

    灵活运用CRM系统所拥有的自动化功能模块,是公司在快速发展和降低成本的关键保障.不管您的公司规模的大小,您企业的工作流程都必须遵照相同的流程反复操作.这种反复的工作是一个效率黑洞,长久以往会导致人力资 ...

  4. 明明是企业管理软件,CRM系统为何被抵触?

    小编在昨天的文章<CRM系统为什么没有达到预期效果?>中曾说过,CRM客户管理系统没有达到预期效果的其中一个原因是CRM系统的使用率太低,而根本的原因是员工的抵触.明明是企业管理大师,CR ...

  5. SAP和Java系统的Webservice实例

    简介: 关于Webservice的概念和原理,简单来讲,Webservice是一种基于SOAP传输协议,用WSDL描述,用XML封装数据的接口技术.由于其跨平台.跨防火墙.开发成本低.开发周期短等优势 ...

  6. XFire创建WebService实例应用

    [转自] http://clq9761.iteye.com/blog/1261963 XFire创建WebService实例应用 XFire使得在JavaEE应用中发布Web服务变得轻而易举.和其他W ...

  7. CXF整合Spring发布WebService实例

    一.说明: 上一篇简单介绍了CXF以及如何使用CXF来发布一个简单的WebService服务,并且介绍了客户端的调用. 这一篇介绍如何使用CXF与spring在Web项目中来发布WebService服 ...

  8. [转]Axis2创建WebService实例

    以下文章来自http://clq9761.iteye.com/blog/976029,作者clq9761 一.Axis2的下载和安装 1.可从http://ws.apache.org/axis2/ 下 ...

  9. 基于axis1.4的webservice实例

    1.准备工作: 概念:SOAP(简单对象访问协议).WSDL(web服务描述语言).XML(可扩展标记语言).axis(阿帕奇可扩展交互系统) (1)     下载axis1.4,将axis1.4中的 ...

随机推荐

  1. echarts 设置图例的颜色,不设置color,echarts里面也会有默认的颜色

  2. 【JSOI2018】潜入行动

    [JSOI2018]潜入行动 树形\(DP\).设\(f_{i,j,0/1,0/1}\)表示以\(i\)为根的子树中,用了\(j\)个监听器,是否放置了监听器,是否被监听的方案数.转移就多讨论几种情况 ...

  3. C#事件の.net下的EventArgs和EventHandler

    事件参数(EventArgs) .Net框架里边提供的一个委托EventHandler来Handle事件. 一样,搞一个场景(这个场景是书里的):买车.经销商(CarDealer)会上新车(NewCa ...

  4. CMD命令行netsh添加防火墙规则

    1.为e:\f.exe 添加防火墙规则(参考:https://www.cnblogs.com/zhen656/p/4275270.html),需要管理员权限. >netsh advfirewal ...

  5. 11175-From D to E and Back(思维)

    Problem UVA11175-From D to E and Back Accept: 164  Submit: 607Time Limit: 3000 mSec Problem Descript ...

  6. UVA12265-Selling Land(细节处理)

    Problem UVA12265-Selling Land Accept: 309  Submit: 3231Time Limit: 3000 mSec Problem Description Inp ...

  7. 小a的轰炸游戏 (差分)

    我是看题解的! 这道题还是有很多细节,当然,是一道差分的好题! 题意:有2种飞机,一种是只炸上半菱形,一种是炸整个菱形.问所有区域内的所有格子的异或和. 思路:用前缀和思路: 这样遍历过去就完成了一次 ...

  8. 自定义实现moveable button

    实现的效果图: 自定义MVButton,继承自UIButton. 属性声明如下: @property (nonatomic) CGPoint beginPoint; @property (nonato ...

  9. django 接受 ajax 传来的数组对象

    django 接受 ajax 传来的数组对象 发送:ajax 通过 POST 方式传来一个数组 接收:django 接受方式 array = request.POST.getlist(‘key[]’) ...

  10. 两篇 Spring 总结(一)

    Spring4 概述以及 HelloWorld 概述 Spring 是一个 IOC(DI) 和 AOP 容器框架. 轻量级,Spring 是非侵入的,即使用的时候不需要实现任何接口或继承任何父类 面向 ...