`

Webservice用来传递参数,并返回对象(采用手动打成aar包)

 
阅读更多

1.  首先,先编写服务端代码 

     

  1. public class ReturnObjectService {  
  2.   
  3.       
  4.     public User getUser(String name) {  
  5.         User user = new User();  
  6.         user.setUsername(name);  
  7.         return user;  
  8.     }  
  9.       
  10. }  
public class ReturnObjectService {

	
    public User getUser(String name) {
    	User user = new User();
    	user.setUsername(name);
    	return user;
    }
    
}
  1. package server.object;  
  2.   
  3. import java.io.Serializable;  
  4.   
  5.   
  6. public class User implements Serializable{  
  7.   
  8.     private String username;  
  9.   
  10.     public String getUsername() {  
  11.         return username;  
  12.     }  
  13.   
  14.     public void setUsername(String username) {  
  15.         this.username = username;  
  16.     }  
  17.       
  18. }  
package server.object;

import java.io.Serializable;


public class User implements Serializable{

	private String username;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}
	
}


2.  进行手动打包过程。  新建一个文件夹,放入对应的服务端class(要求带入文件路径)。新建一个META-INF文件夹,并在其中编写services.xml文件,具体内容如下:

 

  

  1. <service name="returnObjectService">  
  2.     <parameter name="ServiceClass">  
  3.         server.object.ReturnObjectService     
  4.     </parameter>  
  5.     <messageReceivers>  
  6.         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"  
  7.                 class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />  
  8.         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"  
  9.                 class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />  
  10.     </messageReceivers>  
  11. </service>  
<service name="returnObjectService">
    <parameter name="ServiceClass">
        server.object.ReturnObjectService   
    </parameter>
    <messageReceivers>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
				class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
		<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
				class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
    </messageReceivers>
</service>

    

 

       可以用开始进行打包处理,打包语句如下:进入需要打包的文件路径,直接执行 jar cvf  打包后名字.aar . (后面有个点,表示当前路径),

或者jar cvf 打包后名字.aar  文件夹名  文件夹名   等两种方式都可以。

      打包后,把对应的aar包放入Tomcat6.0\webapps\axis2\WEB-INF\services 路径之下,就可以了。        

 

3.  编写客户端代码:

     

  1. package client;  
  2.   
  3. import javax.xml.namespace.QName;  
  4.   
  5. import org.apache.axis2.AxisFault;  
  6. import org.apache.axis2.addressing.EndpointReference;  
  7. import org.apache.axis2.client.Options;  
  8. import org.apache.axis2.rpc.client.RPCServiceClient;  
  9.   
  10. public class ReturnObjectTest {  
  11.   
  12.       
  13.     public static void main(String[] args) throws AxisFault {  
  14.         String target = "http://localhost:8080/axis2/services/returnObjectService";  
  15.         RPCServiceClient client = new RPCServiceClient();  
  16.         Options options = client.getOptions();  
  17.         options.setManageSession(true);  
  18.   
  19.         EndpointReference epr = new EndpointReference(target);  
  20.         options.setTo(epr);  
  21.   
  22.         QName qname = new QName("http://object.server""getUser");  
  23.         Object[] result = client.invokeBlocking(qname, new Object[] {"linwei"},new Class[] { User.class });  
  24.         User user = (User)result[0];  
  25.         System.out.println("user.username is " + user.getUsername());  
  26.     }  
  27.       
  28. }  
分享到:
评论

相关推荐

    Xfire调用webservice无法传递参数问题

    标题“Xfire调用WebService无法传递参数问题”暗示了开发者在尝试使用Xfire框架时遇到了参数无法正常传递到Web服务的情况。这可能涉及到多个方面,如编码问题、序列化错误、类型不匹配或者配置不正确等。以下是一些...

    WebService CXF 对象传递 附

    **WebService CXF 对象传递详解** 在Web服务领域,CXF是一个非常重要的开源框架,它允许开发者创建和消费各种Web服务。CXF支持SOAP、RESTful等多种通信模式,并且能够处理复杂的对象传递,使得Web服务的数据交换...

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

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

    webService客户端调用服务端传对象参数

    这个工程详细的介绍了webService服务客户端如何调用简单和复杂的webService,其中就包括传递的参数是对象类型,返回数据是数组类型,还有最简单的基本类型。压缩包里还配置说明,清晰的说明webService的整个过程,对...

    Android调用webservice进行实体对象的传递Json

    总结,Android调用WebService并使用JSON传递实体对象涉及到多个步骤,包括选择合适的库(如ksoap2和Newtonsoft.Json),理解数据序列化和反序列化的过程,以及正确设置HTTP通信。通过这种方式,你可以高效地在客户端...

    调用webservice,通过post传参读取返回的XML

    通过整合这些元素,我们可以构建一个Web应用程序,该应用程序能够通过POST方式调用WebService,传递参数,并解析返回的XML数据,以便在页面上展示。这涉及到了客户端与服务器端的交互,XML数据的处理以及ASP.NET Web...

    WINFORM调用webservice传递可序列化对象示例C井版

    WINFORM调用webservice传递可序列化对象示例C井版WINFORM调用webservice传递可序列化对象示例C井版WINFORM调用webservice传递可序列化对象示例C井版WINFORM调用webservice传递可序列化对象示例C井版

    Web Service提供者 参数写在对象中(参数为对象)

    Web Service提供者 参数写在对象中(参数为对象)

    WebService传递对象与集合问题.rar

    本资源"WebService传递对象与集合问题.rar"显然关注的是在Web Service中如何有效地传递复杂数据类型,如对象和集合。 在传统的Web Service中,数据通常通过XML格式进行传输,这是SOAP消息的基础。然而,直接传递...

    java调用json参数的webservice

    3. 在Java客户端,调用WebService方法并将JSON格式的字符串作为参数传递给服务端。这个字符串将被序列化为SOAP消息,然后通过网络发送给WebService端点。在客户端代码中,一般需要有一个客户端代理类,这个代理类...

    动态调取webservice返回json数据并处理

    3. 调用WebService方法:通过客户端对象调用WebService提供的接口方法,传递所需的参数。 4. 处理返回数据:WebService调用完成后,会得到响应数据,通常是XML或JSON格式。本例中,我们需要处理JSON数据。 JSON...

    webservice之使用jaxb把xml转换Object或把对象转换成xml文件

    1. 对象实例化:创建Java对象并设置其属性。 2. 序列化XML:使用`Marshaller`接口将Java对象转换为XML文档。例如: ```java JAXBContext jaxbContext = JAXBContext.newInstance(User.class); Marshaller ...

    Delphi调用C#的Webservice返回Dataset

    本话题聚焦于使用Delphi客户端调用由C#编写的Webservice,并接收返回的Dataset,以便进行数据库操作。以下是对这个主题的详细阐述: 首先,我们要理解Delphi和C#是两种不同的编程语言,分别来自Embarcadero ...

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

    这段代码创建了服务的Stub类实例,设置了一个Weather对象,并获取了返回的Weather对象,从而验证了setWeather方法是否正常工作。 总之,AXIS2通过POJO发布Web服务提供了一种简洁高效的方式,但在实际操作中需要注意...

    webservice远程调用,返回数据生成xml文件,并通过SAX解析出来

    webservice远程调用,返回String数据并生成xml文件到本地工程,在通过SAX解析器把数据解析出来。这是webservice应用的一个简单的例子。根据该例子的思想,可以实现很多功能了。例如把client工程的sayHello方法改为...

    java处理.net webservice返回的对象

    接下来,我们看一个简单的示例,展示如何调用.NET WebService的`GetSafeMode`方法并传递参数及接收返回值: ```java @WebMethod public string GetSafeMode(string factoryId, string simId) { ……. return “0...

    调用WEBService参数

    例如,如果服务有一个名为`GetWeather`的方法,接受城市名和日期作为参数,那么在调用时,我们需要创建一个包含这两个值的对象,并将其传递给代理类的`GetWeather`方法。 例如,在.NET中,代码可能会如下所示: ``...

    Xfire调用webservice无法接收到参数问题解决

    标题"Xfire调用webservice无法接收到参数问题解决"指出的核心问题是:当使用Xfire作为客户端调用Web服务时,服务端无法正确接收到传递的参数。这可能是由于多种原因引起的,如: 1. **XML序列化与反序列化问题**:...

    webservice cxf 服务端客户端传递参数的例子demo

    - 调用服务:通过代理对象调用服务方法,传递参数并接收返回值。 4. **测试传递参数的test类** 为了确保服务端和客户端能正确通信,通常会编写测试类来模拟各种参数传递场景。这些测试类可能包含: - 单个基本...

    用services.xml以jar或aar格式发布webservice步骤(图解)

    这个类有一个`getGreeting`方法,接受一个字符串参数并返回一个问候消息。 为了将服务打包,我们需要按照特定的目录结构组织文件。创建一个名为`WS-services`的文件夹,然后将services.xml和SimpleService类所在的...

Global site tag (gtag.js) - Google Analytics