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

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

发布时间:2020-12-17 01:07:00 所属栏目:安全 来源:网络整理
导读:1. ?首先,先编写服务端代码? ?? ?? public class ReturnObjectService { public User getUser(String name) { User user = new User(); user.setUsername(name); return user; } } package server.object;import java.io.Serializable;public class User im

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

?? ??

public class ReturnObjectService {

	
    public User getUser(String name) {
    	User user = new User();
    	user.setUsername(name);
    	return user;
    }
    
}
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文件,具体内容如下:

??

<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.0webappsaxis2WEB-INFservices 路径之下,就可以了。 ?? ? ? ?


3. ?编写客户端代码:

?? ??

package client;

import javax.xml.namespace.QName;

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

public class ReturnObjectTest {

	
	public static void main(String[] args) throws AxisFault {
		String target = "http://localhost:8080/axis2/services/returnObjectService";
		RPCServiceClient client = new RPCServiceClient();
		Options options = client.getOptions();
		options.setManageSession(true);

		EndpointReference epr = new EndpointReference(target);
		options.setTo(epr);

		QName qname = new QName("http://object.server","getUser");
		Object[] result = client.invokeBlocking(qname,new Object[] {"linwei"},new Class[] { User.class });
		User user = (User)result[0];
		System.out.println("user.username is " + user.getUsername());
	}
	
}

?? ???

(编辑:李大同)

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

    推荐文章
      热点阅读