`
gdntx
  • 浏览: 21007 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

axis2 传递对象

阅读更多

java交流群:38615496

首先在MyEclipse中创建一个web project;

project取名 Ws2Pojo
  服务器端
  1、创建pojo类:

package sample.ws.pojo;

public class Person {

	private String name;
	
	private String age;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}
	
}

 

PersonService.java

package sample.ws.service;

import sample.ws.pojo.Person;

public class PersonService {
/**
 * 很简单我们只是将发过来的person返回去
 * @param person
 * @return
 */
	public Person getPerson(Person person){
		
		return person;
	}
	    
	   
}

 

  services.xml 文件内容

<?xml version="1.0" encoding="UTF-8"?>


<service name="PersonService" scope="application">
		<description>PersonService</description>

 	<messageReceivers>   
     <messageReceiver    
            mep="http://www.w3.org/2004/08/wsdl/in-only"  
    class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>   
        <messageReceiver   
            mep="http://www.w3.org/2004/08/wsdl/in-out"  
    class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>   
    </messageReceivers>  
    <parameter name="ServiceClass">
    sample.ws.service.PersonService
    </parameter>
	
</service>

 将项目部署到tomcat上,这样服务器端就发布成功了。
现在是客户端,我们采用rpc的方式调用

1、首先建立pojo类Person(注意包名要和服务器端的person的包名相同
   Person.java 

package sample.ws.pojo;

public class Person {

private String name;
	
	private String age;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}
	
}

 2、创建客户调用类: 

   package sample.ws.client;



import javax.xml.namespace.QName;

import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;

import sample.ws.pojo.Person;

public class Ws2pojoClient {

	public static void main(String args[]) throws java.lang.Exception{
	
	RPCServiceClient client = new RPCServiceClient();
	
	Options option = client.getOptions();
//	指定客户端访问的webservice服务器端地址
	EndpointReference erf = new EndpointReference("http://localhost:8080/axis2/services/PersonService");
	
	option.setTo(erf);
//	指定命名空间,指定要调用的方法
	QName name = new QName("http://service.ws.sample","getPerson");
//	创建Person对象
	Person person = new Person();
	person.setAge("20");
	person.setName("张三");
	
//	创建要传送的object数组
	Object[] object = new Object[]{person};
//	创建返回的参数类型
	Class[] returnTypes = new Class[]{Person.class};
//	调用远程服务,得到返回的object数组
	Object[] response = client.invokeBlocking(name, object, returnTypes);
//	强制转换成Person对象
	Person p = (Person)response[0];
	
	System.out.println(p.getAge());
	System.out.println(p.getName());
	
	}
}

  得到输出: 20
           张三
 

分享到:
评论

相关推荐

    axis1_4 发布webservice 传递对象或返回对象(一)_benet6_新浪博客.mht

    axis1_4 发布webservice 传递对象或返回对象(一)_benet6_新浪博客.mht

    Axis2通过JSON交互

    NULL 博文链接:https://jerval.iteye.com/blog/2227589

    Axis WebService 技术指南,开发文档

    Axis中传递复杂对象和内部类 Axis中的handler、chain的特性 Axis中处理异常信息 Axis中传递文件信息 Axis常用命令介绍 Axis 提供的工具和调试 Axis 的wsdl生成代码 Axis的Header信息操作 .Net调用Axis出现的问题

    Android axis调用Webservice

    Android 利用axis2 调用webservice 包含j2ee服务端代码和Android客户端代码 代码实现包含 List,map ,对象传递

    java axis 调用 webServices

    3传递对象Users,得到对象Users 经我本人亲自测试 服务端代码如下: public class WebServiceTest { public String sayHello(String name){ return "Hello,"+name; } public Users getUsers(String name){ ...

    Axis webService 教程.pdf

    1 如何发布自己的webService 2 1.1 即时发布 JWS (Java Web Service) Files - Instant Deployment 2 1.2 定制发布 Custom Deployment - ...3 如何传递javabean和你的对象 14 4 如何抛出自定义异常 18 5 如何传递文件 25

    用WebService传递POJO和对象数组的例子.doc

    AXIS2中自带了一个通过POJO发布为WebService 的例子。这种方式发布的WebService并不需要我们生成WSDL,而直接从Bean生成WebService(自底向上模式)。典型的问题就是,如果我们直接用AXIS2中的源代码通过ant生成arr...

    Axis1.4开发指南.pdf

    2.AXIS使用........................................3 2.1AXIS的介绍.....................................3 2.2AXIS的下载.....................................3 2.3AXIS的安装................................

    Webservice axis 整理好的示例文档

    即时发布JWS 定制发布WSDD 传递复杂对象List,Map,数组,自定义对象 RMI方式远程调用 RMI方式远程调用 JAF传输文件

    XfireWebService实例和讲解

    就会导致对方的数据不是同步的,很难做到及时,后来就一直再搞axis,发现这个东西不是很好用,而且网上的资料太残缺了,搞的我几近崩溃,但是还是不行,后来发现axis好像不能传递List 没办法只好转向例外一种框架...

    pandas的连接函数concat()函数的具体使用方法

    concat()函数的具体用法 ...如果传递了dict,则排序的键将用作键参数,除非它被传递,在这种情况下,将选择值(见下文)。任何无对象将被静默删除,除非它们都是无,在这种情况下将引发一个ValueErr

    使​用​A​x​i​s​和​x​f​i​r​e​发​布​调​用​W​e​b​S​e​r​v​i​c​e​s

     4 1.2.2 带自定义对象传递的Web Service ........................................................................ 8 1.3 XFire发布Web Services .....................................................

    rotrJS:RotranslateJS

    要将其应用于elment,请创建将元素和选项传递给它的Rotr对象。 &lt; script &gt; text = new Rotr ( "#text" , { xInverse : true , // set to true if you want to move the element opposite to cursor ...

Global site tag (gtag.js) - Google Analytics