CXF框架简单的JavaBean对象传递进行讲解。
第一步:创建传输的JavaBean对象(UserInfo)
-
package
com.ws.model;
-
-
import
javax.xml.bind.annotation.XmlAccessType;
-
import
javax.xml.bind.annotation.XmlAccessorType;
-
import
javax.xml.bind.annotation.XmlRootElement;
-
import
javax.xml.bind.annotation.XmlType;
-
-
-
@XmlRootElement
(name=
"UserInfo"
)
-
@XmlAccessorType
(XmlAccessType.FIELD)
-
@XmlType
(propOrder={
"userName"
,
"userAge"
})
-
public
class
UserInfo {
-
private
String userName;
-
private
Integer userAge;
-
-
public
UserInfo(String name,Integer age){
-
this
.userAge = age;
-
this
.userName = name;
-
}
-
-
public
UserInfo(){
-
}
-
-
-
-
}
注解:@XmlRootElement-指定XML根元素名称(可选)
@XmlAccessorType-控制属性或方法序列化 , 四种方案:
FIELD-对每个非静态,非瞬变属性JAXB工具自动绑定成XML,除非注明XmlTransient
NONE-不做任何处理
PROPERTY-对具有set/get方法的属性进行绑定,除非注明XmlTransient
PUBLIC_MEMBER -对有set/get方法的属性或具有共公访问权限的属性进行绑定,除非注 明XmlTransient
@XmlType-映射一个类或一个枚举类型成一个XML Schema类型
第二步:创建webservices服务端接口和实现类
1、创建服务端接口类
-
package
com.ws.services;
-
-
import
javax.jws.WebService;
-
import
com.ws.model.UserInfo;
-
-
@WebService
-
public
interface
IUserServices {
-
public
UserInfo getUserInfo(String userName, Integer userAge);
-
}
2、创建服务端接口实现类
-
package
com.ws.services.impl;
-
-
import
javax.jws.WebService;
-
import
com.ws.model.UserInfo;
-
import
com.ws.services.IUserServices;
-
-
@WebService
-
public
class
UserServicesImpl
implements
IUserServices {
-
public
UserInfo getUserInfo(String userName, Integer userAge) {
-
return
new
UserInfo(userName,userAge);
-
}
-
}
3、创建服务端,并发布服务
-
package
com.test;
-
-
import
javax.xml.ws.Endpoint;
-
import
org.apache.cxf.jaxws.JaxWsServerFactoryBean;
-
import
com.ws.services.impl.UserServicesImpl;
-
-
public
class
ServerTest {
-
public
ServerTest(){
-
-
Endpoint.publish("http://localhost:8090/userInfoServices"
,
new
UserServicesImpl());
-
}
-
public
static
void
main(String[] args) {
-
-
new
ServerTest();
-
System.out.println("Server ready..."
);
-
try
{
-
Thread.sleep(1000
*
300
);
-
} catch
(InterruptedException e) {
-
e.printStackTrace();
-
}
-
System.out.println("Server exit..."
);
-
System.exit(0
);
-
}
-
}
第三步:创建webservices客户端,并进行测试(这里只例举在客户端工程中的测试方法)
1、将服务端的JavaBean和Services接口类,copy到客户端工程中,且目录要一致
2、在客户端工程中,新建一个测试类测试
-
package
com.ws.client;
-
-
import
org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
-
import
com.ws.model.UserInfo;
-
import
com.ws.server.IUserServices;
-
-
public
class
UserTest {
-
public
static
void
main(String[] args) {
-
-
JaxWsProxyFactoryBean factory = new
JaxWsProxyFactoryBean();
-
-
factory.setServiceClass(IUserServices.class
);
-
-
factory.setAddress("http://localhost:8090/userInfoServices"
);
-
IUserServices userServices = (IUserServices)factory.create();
-
System.out.println("invoke userinfo webservice..."
);
-
-
UserInfo user = userServices.getUserInfo("vicky"
,
23
);
-
System.out.println("UserName: "
+user.getUserName());
-
System.out.println("UserAge : "
+user.getUserAge());
-
-
System.exit(0
);
-
}
-
}
第四步:运行webServices服务,在IE中输入http://localhost:8090/userInfoServices?wsdl
,验证服务是否成功发布
第四步:运行客户端,验证。
分享到:
相关推荐
NULL 博文链接:https://michael-wang.iteye.com/blog/1565142
这里的Interceptor就和Filter、Struts的Interceptor很类似,提供它的主要作用就是为了很好的降低代码的耦合性,提供...参照网址:http://www.cnblogs.com/hoojo/archive/2011/03/30/1999587.html,cxf入门很不错的哦!
spring,cxf,restful发布webservice传递复杂对象,例如List,Map,List<Map>
Web Service学习-CXF开发Web Service的权限控制(二)
cxf框架的webservice,可以完美运行,生成了xml字符串并进行传递以及生成了json对象,然后传递给客户端
一、CXF WebService准备工作 二、CXF 入门示例 三、CXF对Interceptor拦截器的支持 四、CXF WebService中传递复杂类型对象 五、CXF整合Spring
CXF对Interceptor拦截器的支持 CXF WebService中传递复杂类型对象 CXF整合Spring ANT工具快速构建、部署工程
做开发时,查了大量资料,发现一比较全面的资料,分享一下!...对象传递 WebService CXF学习——高级篇(一)(二) 1.整合Spring框架 2.CXF+Spring+Hibernate 3.WS-Security WebService CXF学习——JAXB剖析
CXF 入门实例 CXF对Interceptor拦截器的支持 传递复杂类型对象 CXF整合Spring
测试 cxf 2.1.3客服端 调用 xfire 1.2.6 的服务端 的对象传递,与对象返回,服务端见xfire 1.2.6 server
cxf框架的webservice,可以完美运行,生成了xml字符串并进行传递以及生成了json对象,客户端进行请求并解析数据
一、CXF WebService准备工作 二、CXF 入门示例 三、CXF对Interceptor拦截器的支持 四、CXF WebService中传递复杂类型对象 五、CXF整合Spring
cxf入门例子,接口包括三个方法,传递字符串,对象及对象list. 例子中有客户端和服务端完整代码及jar包.
CXF webSerivces开发示例工程,其中包含JavaBean对象、List对象、Map对象传递的示例。
首先,如果我们要用CXF发布webservice用自定义类型的对象来当参数传递的话,我们应该先把这个类序列化一遍,下面就是我测试的代码,我创建了一个TGrade类,实现了KvmSerializable接口,这个接口里面的三个方法,这个...
xfire server 支持对象的传递和对象的返回,对应的cxf client cxf 1.2.6 client
包括简单的HelloWorld、复杂对象传递、安全机制、大文件上传(MTOM)、嵌入jetty等。 呵呵,3分不多吧=,=!!
3.4.2 Activity传递对象类型 3.4.2 Activity回传数据 3.5 Activity加载模式 3.6 本章小结 第4章 Intent (意图) 4.1 显式Intent 4.2 隐式Intent 4.2.1 IntentFilter 4.2.2 调用系统组件 4.3 本章小结 第5章 ...
路由会生成示例消息,这些示例消息将传递到通过src/main/resources/application.properties文件中名为quickstart.recipients的属性配置的收件人端点列表。 可以使用Kubernetes ConfigMap对象覆盖该属性。 在命名...