Android webservice的用法详细讲解(1)

本文详细介绍了WebService接口的创建、在Spring框架中的应用,包括接口定义、实现类、Dao和Dao实现、Spring配置以及如何通过CXF和SOAPUI进行测试。同时强调了知识体系化学习的重要性。
摘要由CSDN通过智能技术生成

3、WebService接口

这里面是封装的webservice接口,手机端就是直接通过这些接口进行数据的传送与接收,最重要的是在接口上一定要加上"@WebService"这个注解,这样才能把此类里面的方法封装成一个webservice接口,关键代码如下:

//手机客户端服务类(专门负责与手机客户端进行交互)

@WebService

public interface MobileClientService {

/**

* 登陆

* @param opPhone

* @param loginPwd

*/

public String userLogin(@WebParam(name = “opPhone”) String opPhone, @WebParam(name = “loginPwd”) String loginPwd);

}

要注意的是方法里的参数前一定要加上@WebParam(name = “***(随便取的名字)”),这是因为这个opPhone参数通过webservice发布出去之后是以opPhone这个名称存在的,在手机端那边的方法直接获取opPhone就可以了。

4、WebService接口实现类

ws里面接口的实现类,在这个类的开始,一定要加上"@WebService(endpointInterface = “com.silent.cn.ws.MobileClientService”)"这个注解,它表示是继承自com.silent.cn.ws.MobileClientService的类,没有这一步,webservice接口是不会实现其功能的。下面是代码:

@WebService(endpointInterface = “com.silent.cn.ws.MobileClientService”)

public class MobileClientServiceImpl implements MobileClientService {

public String userLogin(String opPhone, String loginPwd) {

SysUser sysUser = userLoginDao.userLogin(opPhone, loginPwd);

DataOperateResult dataOperateResult = new DataOperateResult();

if (sysUser != null) {

// 封装登录验证结果

dataOperateResult.setStatus(SUCC);

System.out.println(“登陆成功!”);

return JSONObject.fromObject(dataOperateResult).toString();

} else {

System.out.println(“不存在或手机号码和密码不正确!”);

dataOperateResult.setStatus(FAIL);

return JSONObject.fromObject(dataOperateResult).toString();

}

}

}

5、Dao和Dao实现类Java代码

/**

* 用户登录DAO

*/

public interface UserLoginDao {

/**

* 根据用户名和用户密码登陆

* @param userPhone 用户手机号码

* @param passWord 用户密码

* @return

*/

public SysUser userLogin(String userPhone, String passWord);

}

/**

* 用户登录DAO实现类

*/

public class UserLoginDaoImpl extends BaseDao implements UserLoginDao {

public SysUser userLogin(String userPhone, String passWord) {

String sql = " from SysUser where userPhone=? and userPwd=? ";

List list = this.getHibernateTemplate().find(sql, new Object[] { userPhone, passWord });

if (list.size() == 0) {

return null;

}

return list.get(0);

}

}

6、Spring配置

这里spring的配置为了整洁与不臃肿,分成了三部分,分别实现了不同功能:

applicationContext.xml:所有的spring配置信息,包括连接数据库、配置事务管理器、配置事务传播特性 、dao模板等等

<bean id=“dataSource” class=“org.apache.commons.dbcp.BasicDataSource”>

<bean id=“sessionFactory”

class=“org.springframework.orm.hibernate3.LocalSessionFactoryBean”>

org.hibernate.dialect.MySQLDialect

true

classpath:/com/silent/cn/model/

<bean id=“transactionManager”

class=“org.springframework.orm.hibernate3.HibernateTransactionManager”>

<tx:advice id=“txAdvice” transaction-manager=“transactionManager”>

tx:attributes

<tx:method name=“save*” propagation=“REQUIRED” />

<tx:method name=“delete*” propagation=“REQUIRED” />

<tx:method name=“update*” propagation=“REQUIRED” />

<tx:method name=“do*” propagation=“REQUIRED” />

<tx:method name=“*” read-only=“false” />

</tx:attributes>

</tx:advice>

aop:config

<aop:pointcut id=“allManagerMethod”

expression=“execution(* com.silent.cn.dao.impl.*.*(…))” />

<aop:advisor pointcut-ref=“allManagerMethod” advice-ref=“txAdvice” />

</aop:config>

<bean id=“daoTemplate” abstract=“true”>

<bean id=“jdbcTemplate” abstract=“true”>

7、WebService接口配置

这里设定的address就是该webservice的实际地址了:

<jaxws:endpointid=“clientServiceEndpoint"address=”/clientService" implementorClass=“com.silent.cn.ws.MobileClientService”>

jaxws:implementor

<bean id=“clientService” class=“com.silent.cn.ws.impl.MobileClientServiceImpl”>

</jaxws:implementor>

</jaxws:endpoint>

8、配置web.xml

在web里添加下面的语句:

CXFServlet

<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

CXFServlet

/ws/*

9、WebService接口测试

最好安装soapUI  pro这个软件,SOAPUI这个工具功能非常强大,是作为测试工具来用的,它既可以模拟客户端,也可以模拟服务端,可以根据描述文件很容易就生成的模拟的服务端和服务端,还可以有测试用例管理,负荷测试等,对通讯的中间过程也可以全程监控。

SOAPUI是一个免费的工具,而SOAPUI PRO是收费的,功能更强大。详细的SOAPUI用法可以参考下面的网址:http://xzhoumin.blog.163.com/blog/static/40881136201231955833137/

Client端

1、

首先,我们要获取Web端在Tomcat发布成功之后的接口地址与方法地址,如果是模拟器的话,其IP地址必须是10.0.2.2;如果是真机,那么电脑和真机都要用wifi连接到同一个网段下,而且IP地址就是电脑的实际IP地址,这样手机才能从Tomcat上获取数据,代码如下:

//WebService接口地址

public static String NAME_SPACE_SALE = “http://ws.cn.silent.com/”;

// 网址(如果是模拟器额话,需要把IP地址<192.168.1.***:8080>换成10.0.2.2:8080)

最后送福利了,现在关注我可以获取包含源码解析,自定义View,动画实现,架构分享等。
内容难度适中,篇幅精炼,每天只需花上十几分钟阅读即可。
大家可以跟我一起探讨,有flutter—底层开发—性能优化—移动架构—资深UI工程师 —NDK相关专业人员和视频教学资料,还有更多面试题等你来拿

录播视频图.png

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

十几分钟阅读即可。
大家可以跟我一起探讨,有flutter—底层开发—性能优化—移动架构—资深UI工程师 —NDK相关专业人员和视频教学资料,还有更多面试题等你来拿**

[外链图片转存中…(img-MJJl3qfI-1714299343404)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值