阿翔编程学-Axis传递Pojo对象
来源:互联网 发布:esp8266 wifi网络干扰 编辑:程序博客网 时间:2024/06/03 22:56
Axis传递Pojo对象
(1)编写服务器端Java程序
//===========================================================
//传递Java对象的服务类程序 author:曹翔
//===========================================================
package com.ruix.service;
/**
* 传递Java对象的服务类程序
* @author caoxiang
* @version 1.0
*/
public class PojoService {
//用户对象
static User user = new User();
/**
* 传递对象的方法
* @param user
* 用户对象
* @return
* 返回0传递成功,返回1传递失败
*/
public synchronized int sendBo(User user) {
//默认为1,传递失败
int result = 1;
//判断传递的对象是否为空
if (user.getUsername().length() > 0 && user.getPassword().length() > 0) {
this.user = user; //如果发送成功了,设置User对象
result = 0;//成功
} else {
result = 1;//失败
}
//返回
return result;
}
/**
* 清空对象
*
*/
public void clearBo() {
this.user = null;
//调用垃圾收集,收集清理过的对象空间
System.gc();
}
/**
* 返回对象
* @return
*/
public User getBo() {
//返回对象
return this.user;
}
}
(2)修改wsdd文件,加入如下代码:
<!-- 对象传递服务 add by caoxiang -->
<service name="PojoService" provider="java:RPC">
<parameter name="allowedMethods" value="*"/>
<parameter name="className" value="com.ruix.service.PojoService"/>
<parameter name="allowedRoles" value="caoxiang,caoxiang"/>
<requestFlow>
<handler name="logging" type="java:com.ruix.service.LogHandler">
<parameter name="filename" value="c://MyService.log"/>
</handler>
<handler name="authen" type="java:com.ruix.service.AuthenticationHandler"/>
</requestFlow>
<beanMapping languageSpecificType="java:com.ruix.service.User" qname="ns:User" xmlns:ns="urn:BeanService"/>
</service>
(3)客户端访问代码如下:
/**
* 测试程序 java po 对象传递
*
*/
public void send(User user_bo) {
try{
String helloWorldURL="http://localhost:5200/xfire_sample/services/HelloWorldService";
String endpoint = "http://localhost:5200/testServer/services/PojoService";
//String endpoint = "http://localhost:9080/axis/services/HelloWorldService";
Integer i1 = new Integer(1);
Integer i2 = new Integer(2);
String user= new String("1");
String password=new String("2");
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
QName qn = new QName("urn:BeanService", "User");
call.registerTypeMapping(User.class, qn,
new BeanSerializerFactory(User.class, qn),
new BeanDeserializerFactory(User.class, qn));
//set data
call.setOperationName(new QName("urn:PojoService", "sendBo"));
Object[] params = new Object[] { user_bo };
//设置用户名和密码
//call.setUsername("caoxiang");
call.getMessageContext().setUsername("caoxiang");
call.getMessageContext().setPassword("caoxiang");
//call.addParameter("o", XMLType.xsd, ParameterMode.IN);
call.addParameter("users", XMLType.XSD_ENTITY, ParameterMode.IN);
call.setReturnType(XMLType.XSD_INT);
Integer bv = null;
List list = new ArrayList();
list.add(user_bo);
if(call!=null) {
bv = (Integer) call.invoke(params);
}
if(bv.toString().equals("0")) {
System.out.println("传递成功了" );
} else {
System.out.println("传递失败了" );
}
call.removeAllParameters();
call.setOperationName(new QName("urn:PojoService", "getBo"));
call.setReturnType(qn, User.class);
User resultData = (User)call.invoke(new Object[] {});
System.out.println();
System.out.println();
System.out.println("用户名: " + resultData.getUsername());
}
catch(Exception e){
e.printStackTrace();
}
}
程序代码如上,有问题可以和我多多联系,需要完整代码的,留下Email
- 阿翔编程学-Axis传递Pojo对象
- 阿翔编程学-Axis
- 阿翔编程学-Axis日志服务类
- 阿翔编程学-Axis用户过滤服务类程序
- 使用Axis开发一个传递PoJo类的例子
- 阿翔编程学-Web Service详细解析及使用方法(全) 包括XFire、Axis
- 阿翔编程学-Java环境下的Axis与XFire性能测试
- 传递、返回复杂类型的对象(axis服务端/axis客户端)
- JavaEE_Mybatis_SpringMVC_Mybaits_lesson6__MyBatis传递pojo对象实现综合查询
- WebService-AXIS高级特性 传递复杂对象
- 阿翔编程学-Web Service详细解析及使用方法(全) 包括XFire、Axis、CXF 修改版
- 阿翔编程学-Web Service详细解析及使用方法(全) 包括XFire、Axis、CXF 修改版(二)
- 阿翔编程学-Web Service详细解析及使用方法(完整版)包括XFire Axis CXF 安全 性能测试
- AXIS传递包含javaBean对象的List对象
- 使用Axis2传递简单Java对象(POJO)
- 【MyBatis】——输入映射传递pojo的包装对象
- WebService(3)-AXIS高级特性 传递复杂对象
- 传统Socket编程传递POJO(使用JSON的方式)
- JavaScript 实现打印无页眉页脚
- memset函数详细说明
- Thread.yield( )
- http 403错误
- 登录界面制作(c++build)
- 阿翔编程学-Axis传递Pojo对象
- 在uclinux上开发程序
- 何谓Web2.0
- .net2005编译时的目录权限
- 与陈黎夫在线交流活动
- 阿翔编程学-Axis日志服务类
- 有单片机高手的来帮个忙!~~~
- 阿翔编程学-Axis用户过滤服务类程序
- 项目开发经验谈(二)