定义接口和实现类

/**
 * 自定义service接口
 * 
 * @time 9:01:54 PM
 * @author retacn yue
 * @Email zhenhuayue@sina.com
 */
@WebService
public interface PUserService {
@WebMethod
public String seyHello(@WebParam(name = "name")
String name);

@WebMethod
public String saveUser(@WebParam(name = "email")
String email, @WebParam(name = "nickName")
String nickName, @WebParam(name = "pwd")
String pwd);

@WebMethod
public String getUser(@WebParam(name = "email")
String email, @WebParam(name = "pwd")
String pwd);

}

/**
 * 自定义接口实现
 * 
 * @time 9:01:46 PM
 * @author retacn yue
 * @Email zhenhuayue@sina.com
 */
@WebService
public class PUserServiceImpl implements PUserService {

private BaseDao<User> userDao;

// 注入userdao
@Resource(name = "userDao")
public void setUserDao(BaseDao<User> userDao) {
this.userDao = userDao;
}

public String seyHello(String name) {
System.out.println("进入服务器端的sayHello方法");
return "你好" + name;
}

/**
* 注册用户
*/

public String saveUser(String email, String nickName, String pwd) {
System.out.println("进入服务器端的saveUser方法");
User user = new User();
user.setEmail(email);
user.setNickName(nickName);
user.setPassword(pwd);
user.setRegDate(new Date());

//
userDao.saveEntity(user);
return "success";
}

/**
* 查询用户
*/
public String getUser(String email, String pwd) {

System.out.println("进入服务器端的getUser方法" + email + "===pwd===" + pwd);
List<User> userList = userDao.findEntityByHQL("from User u where u.email =? and u.password = ?", email, pwd);
if (!ValidateUtil.isValidate(userList)) {
return "error";
}
System.out.println("user===============" + userList.get(0).getEmail());
return "success";
}
}

web.xml中的配置

<!-- cxf的设置 -->
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>
org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>

spring配置文件

<!-- service服务 -->
<bean id="pService"
class="cn.yue.lsp.service.impl.PUserServiceImpl">
</bean>
<!-- 访问路径 -->
<jaxws:endpoint id="puserService" implementor="#pService"
address="/puserService" />

注:如果在是作声明式事务通知,在接口中的方法一定不要随意声明,会报hibernate session no bond的错误

android 客户端

需要添加第三方包

ksoap2-android-assembly-2.6.5-jar-with-dependencies.jar

/**
 * userService接口实现
 * 
 * @time 上午9:57:01
 * @author retacn yue
 * @Email zhenhuayue@sina.com
 */
public class UserServiceImpl implements UserService {

/**
* 注册用户
*/
@Override
public String saveEntity(User user) {
Mylog.i("tag", "add user success!");

// =========================================================

// 创建HttpTransportSE对象
HttpTransportSE htse = new HttpTransportSE(Constants.SERVICE_URL);
// 使用soap1.1协议,创建SoapSerializationEnvelope对象
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
// 创建soapObject对象,参数为命名空间和webService 方法
SoapObject request = new SoapObject(Constants.SERVICE_NAMESPACE, Constants.METHOD_ADDUSER);
// 添加参数
// request.addProperty("name", user.getEmail());
request.addProperty("email", user.getEmail());
request.addProperty("nickName", user.getNickName());
request.addProperty("pwd", user.getPassword());

// 设置soap消息体
// envelope.setOutputSoapObject(request);
envelope.bodyOut = request;
String str = null;
try {
// 调用对象的call方法,
htse.call(null, envelope);
if (envelope.getResponse() != null) {
Log.i("tag", "返回正常");
// 取得返回的soapObject对象
SoapObject result = (SoapObject) envelope.bodyIn;
str = result.getProperty(0).toString();
Log.i("tag", "返回值为:" + str);
return str;
}
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
Log.i("tag", "无返回值");
return str;
}

}

未设置超时时间,网络出问题需要作处理

转载于:https://www.cnblogs.com/retacn-yue/archive/2012/10/17/2761218.html

ssh整合webservice cxf采用注解的方式+andriod客户端相关推荐

  1. Spring Boot入门系列(十八)整合mybatis,使用注解的方式实现增删改查

    之前介绍了Spring Boot 整合mybatis 使用xml配置的方式实现增删改查,还介绍了自定义mapper 实现复杂多表关联查询.虽然目前 mybatis 使用xml 配置的方式 已经极大减轻 ...

  2. 注解方式实现SSH整合

    之前有写过基于xml配置文件的SSH整合,但是经过一段时间的项目实践,发现配置文件的方式太过繁琐了,所以就尝试了使用注解的方式,果然没了庞大的配置文件,看起来就是舒服 下面是我使用注解重构之前项目的一 ...

  3. JAVAWEB开发之Spring详解之——Spring的入门以及IOC容器装配Bean(xml和注解的方式)、Spring整合web开发、整合Junit4测试

    Spring框架学习路线 Spring的IOC Spring的AOP,AspectJ Spring的事务管理,三大框架的整合 Spring框架概述 什么是Spring?  Spring是分层的Java ...

  4. JavaEE框架整合之基于注解的SSH整合

    基于注解的SSH整合 开发环节步骤: 实体类 -----> DAO开发 -----> Service开发 -----> Action动作类开发 -----> 配置文件(appl ...

  5. spring整合webservice

    主要讲解点: WebServiceCXF介绍(了解) JAX-WS服务独立发布及测试.JAX-WS整合spring开发及测试(了解) JAX-RS服务独立发布及测试.JAX-RS整合spring开发及 ...

  6. SSH整合方案二(不带hibernate.cfg.xml)

    整体结构: 1.引入相关jar包 2.编写实体类和映射文件 package cn.zqr.domain;public class Customer {private Long cust_id;priv ...

  7. Spring项目整合WebService服务遇到问题记录

    项目是用SSM+Maven构建,在整合WebService时,将遇到问题解决方式记录如下: 基于WS风格使用方式 1.所需要类库:     <dependency>         < ...

  8. SpringBoot整合WebService

    WebService是一种传统的SOA技术架构,它不依赖于任何的编程语言,也不依赖于任何的技术平台,可以直接基于HTTP协议实现网络应用间的数据交互. 面向服务架构(SOA)是一个组件模型,它将应用程 ...

  9. 框架学习之Spring 第五节 SSH整合开发[Spring2.5+Hibernate3.3+Struts2]

    1.首先整合Spring和Hibernate ①引入jar包: hibernate核心安装包下的: hibernate3.jar lib\required\*.jar lib\optional\ehc ...

最新文章

  1. Hadoop高速入门
  2. c#索引器介绍|C#索引器写法|c#索引器例子
  3. Millenium Leapcow POJ - 2111 (千禧年跳牛)(贪心找最长路径,记忆化)
  4. 【OpenCV 例程200篇】16. 不同尺寸的图像加法
  5. TensorFlow 官方文档中文版发布啦(持续维护) 1
  6. DataFountain新上两项CV算法竞赛(文化传承——汉字书法多场景识别、大数据医疗——肝癌影像AI诊断)——50万巨奖等你来拿!
  7. 本年度读书计划-看几本必须好好琢磨的书
  8. numpy的where方法
  9. nagios扩展开发之check_ping
  10. 一条让人不安的坐地龙
  11. 【企业】全球顶级思维模式:建立思维模式,把握人性管理
  12. c语言中可以使用setw函数吗,string和stringstream+setw()用法总结
  13. 计算机考研英语需要过六级吗,四六级没过,会影响考研英语吗?
  14. 64位处理器_64位系统真的比32位系统快吗?
  15. 三种方式实现echarts树图的背景图片设置
  16. java网络编程技术有哪些_Java网络编程技术
  17. 渗透测试之突破口——web服务突破
  18. IDEA创建SSM(Spring+SpringMVC+Mybatis)项目-Jar包版
  19. 每日一言:站在高山之巅的人
  20. qq视频压缩的方法你知道吗

热门文章

  1. 浅析网站与网址二者之间的差别
  2. android edittext标签,TagEditText,类似微博标签的文本控件
  3. 打印机驱动程序属于计算机硬件吗,如何安装打印机驱动程序,详细教您如何给电脑安装打印机驱动程序...
  4. malloc 初始化_关于内存分配malloc、calloc、realloc的区别
  5. (转载)关于安装Ubuntu系统时提示“分配到/的分区/dev/sdax开始于xxxx字节,使用磁盘的最小对齐,这可能造成非常差的性能...的解决办法
  6. 开发日记-20190519 关键词 Linux学习路径
  7. 利用Minhash和LSH寻找相似的集合
  8. 深度学习——无监督,自动编码器——尽管自动编码器与 PCA 很相似,but自动编码器既能表征线性变换,也能表征非线性变换;而 PCA 只能执行线性变换...
  9. AngularJS2.0 quick start——其和typescript结合需要额外依赖
  10. Mestasploit 客户端渗透