加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 00:34:51 所属栏目:安全 来源:网络整理
导读:定义接口和实现类 /** ?* 自定义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);

定义接口和实现类

/**
?* 自定义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;
}

}

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读