<—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. 【BZOJ2117】 [2010国家集训队]Crash的旅游计划

    [BZOJ2117] [2010国家集训队]Crash的旅游计划 Description 眼看着假期就要到了,Crash由于长期切题而感到无聊了,因此他决定利用这个假期和好友陶陶一起出去旅游. Cra ...

  2. 设计模式のChainOfResponsibilityPattern(责任链模式)----行为模式

    一.产生背景 职责链模式是一种行为模式,为解除请求的发送者和接收者之间的耦合,而使多个对象都有机会处理这个请求.将这些对象连接成一条链,并沿着这条链传递该请求,直到有一个对象处理它.避免请求发送者与接 ...

  3. 在PHP中管理环境变量

    在PHP中管理环境变量 现在我们都能用很多个编程语言开发,当我开始熟悉PHP时,我会忽略其它语言的特点.我用过其他语言(比如Node.js),但在PHP中没有看到一种轻松控制设置环境变量的方法,特别是 ...

  4. centos7下安装docker(15.2跨主机网络-overlay)

    为支持容器跨主机通信,Docker提供了overlay driver,使用户可以创建基于VxLAN的overlay网络.VxLAN可将二层数据封装到UDP进行传输,VxLAN提供与VLAN相同的以太网 ...

  5. 【适合核显电脑的环境配置】Tensorflow教程-Windows 10下安装tensorflow CPU with Anaconda

    安装TensorFlow 1.5.0 CPU版本 :仅支持CPU的TensorFlow. 如果您的系统没有NVIDIA GPU,则必须安装此版本. 1.首先下载和安装Anaconda TensorFl ...

  6. 15 python 初学(闭包,函数装饰器)

    这一部分很重要,一定要透彻理解.可参考大神博客:  http://www.cnblogs.com/yuanchenqi/articles/5830025.html 闭包: 如果在一个内部函数里,对在外 ...

  7. .NET中使用Redis 转发

    .NET中使用Redis   Redis是一个用的比较广泛的Key/Value的内存数据库,新浪微博.Github.StackOverflow 等大型应用中都用其作为缓存,Redis的官网为http: ...

  8. Java-Method类常用方法详解

    一.Method类的定义Method类位于 java.lang.reflect 包中,主要用于在程序运行状态中,动态地获取方法信息二.Method类的常用方法  1.getAnnotatedRetur ...

  9. Java模拟登录带验证码的教务系统(原理详解)

    一:原理 客户端访问服务器,服务器通过Session对象记录会话,服务器可以指定一个唯一的session ID作为cookie来代表每个客户端,用来识别这个客户端接下来的请求. 我们通过Chrome浏 ...

  10. docker安装并修改Nginx镜像

    1.安装nginx镜像,命令:docker pull nginx 2.创建nginx容器,并启动,命令:docker run --name webserver -d -p 192.168.51.227 ...