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
NULL 博文链接:https://jerval.iteye.com/blog/2227589
它是 Axis 框架的核心对象,用于传递消息。 4. Transport Listener:Transport Listener 负责监听传输协议,例如 HTTP、SMTP 等,将消息传递到 Axis 框架。 5. Axis Engine:Axis Engine 是 Axis 框架的核心组件,...
Axis中传递复杂对象和内部类 Axis中的handler、chain的特性 Axis中处理异常信息 Axis中传递文件信息 Axis常用命令介绍 Axis 提供的工具和调试 Axis 的wsdl生成代码 Axis的Header信息操作 .Net调用Axis出现的问题
Android 利用axis2 调用webservice 包含j2ee服务端代码和Android客户端代码 代码实现包含 List,map ,对象传递
3传递对象Users,得到对象Users 经我本人亲自测试 服务端代码如下: public class WebServiceTest { public String sayHello(String name){ return "Hello,"+name; } public Users getUsers(String name){ ...
1 如何发布自己的webService 2 1.1 即时发布 JWS (Java Web Service) Files - Instant Deployment 2 1.2 定制发布 Custom Deployment - ...3 如何传递javabean和你的对象 14 4 如何抛出自定义异常 18 5 如何传递文件 25
AXIS2中自带了一个通过POJO发布为WebService 的例子。这种方式发布的WebService并不需要我们生成WSDL,而直接从Bean生成WebService(自底向上模式)。典型的问题就是,如果我们直接用AXIS2中的源代码通过ant生成arr...
2.AXIS使用........................................3 2.1AXIS的介绍.....................................3 2.2AXIS的下载.....................................3 2.3AXIS的安装................................
即时发布JWS 定制发布WSDD 传递复杂对象List,Map,数组,自定义对象 RMI方式远程调用 RMI方式远程调用 JAF传输文件
2. 创建 Service 对象 3. 创建 Call 对象 4. 设置 Call 对象的目标 endpoint 地址、操作名称、参数信息和返回类型 5. 使用 Call 对象的 invoke 方法来调用远程 Web 服务的接口方法 使用 Axis 库可以简化调用 Web ...
就会导致对方的数据不是同步的,很难做到及时,后来就一直再搞axis,发现这个东西不是很好用,而且网上的资料太残缺了,搞的我几近崩溃,但是还是不行,后来发现axis好像不能传递List 没办法只好转向例外一种框架...
concat()函数的具体用法 ...如果传递了dict,则排序的键将用作键参数,除非它被传递,在这种情况下,将选择值(见下文)。任何无对象将被静默删除,除非它们都是无,在这种情况下将引发一个ValueErr
4 1.2.2 带自定义对象传递的Web Service ........................................................................ 8 1.3 XFire发布Web Services .....................................................
要将其应用于elment,请创建将元素和选项传递给它的Rotr对象。 < script > text = new Rotr ( "#text" , { xInverse : true , // set to true if you want to move the element opposite to cursor ...