WebService CXF学习(进阶篇2-4)

2026/1/14 18:42:14

WebService CXF学习(进阶篇2):JAX-WS讲解

文章分类:Java编程

JAX-WS规范是一组XML web services的JAVA API。JAX-WS允许开发者可以选择RPC-oriented或者message-oriented 来实现自己的web services。 在 JAX-WS中,一个远程调用可以转换为一个基于XML的协议例如SOAP。在使用JAX-WS过程中,开发者不需要编写任何生成和处理SOAP消息的代 码。JAX-WS的运行时实现会将这些API的调用转换成为对于SOAP消息。 在服务器端,用户只需要通过Java语言定义远程调用所需要实现的接口SEI (service endpoint interface),并提供相关的实现,通过调用JAX-WS的服务发布接口就可以将其发布为WebService接口。

在客户端,用户可以通过JAX-WS的API创建一个代理(用本地对象来替代远程的服务)来实现对于远程服务器端的调用。

通过web service所提供的互操作环境,我们可以用JAX-WS轻松实现JAVA平台与其他编程环境(.net等)的互操作。 JAX-WS工作原理如下图所示:

JAX-WS与JAX-RPC之间的关系

Sun最开始的web services的实现是JAX-RPC 1.1 (JSR 101)。这个实现是基于Java的RPC,并不完全支持schema规范,同时没有对Binding和Parsing

定义标准的实现。

JAX-WS2.0 (JSR 224)是Sun新的web services协议栈,是一个完全基于标准的实现。在binding层,使用的是the Java Architecture for XML Binding (JAXB, JSR 222),在parsing层,使用的是the Streaming API for XML (StAX, JSR 173),同时它还完全支持schema规范。

WebService CXF学习(进阶篇3):对象传递

文章分类:Java编程

前面几节都是讲一些理论知识,现在又用一个例子来说明一下,这一节我们就CXF框架对象传递进行讲解。

第一步:创建传输对象Customer Java 代码

1. @XmlRootElement(name=\

2. @XmlAccessorType(XmlAccessType.FIELD) 3. @XmlType(propOrder = {\4. public class Customer { 5.

6. private int age; 7. private String name; 8.

9. public int getAge() { 10. return age; 11.} 12.

13.public void setAge(int age) { 14. this.age = age; 15.} 16.

17.public String getName() { 18. return name; 19.} 20.

21.public void setName(String name) { 22. this.name = name; 23.} 24.

25. }

@XmlRootElement-指定XML根元素名称(可选)

@XmlAccessorType-控制属性或方法序列化 四种方案:

FIELD-对每个非静态,非瞬变属性JAXB工具自动绑定成XML,除非注明XmlTransient

NONE-不做任何处理

PROPERTY-对具有set/get方法的属性进行绑定,除非注明XmlTransient PUBLIC_MEMBER -对有set/get方法的属性或具有共公访问权限的属性进行绑定,除非注

明XmlTransient

@XmlType-映射一个类或一个枚举类型成一个XML Schema类型

第二步:创建WebService接口

Java 代码

1. @WebService

2. public interface HelloService { 3.

4. public void save(Customer c1,Customer c2); 5.

6. public void test(String args); 7.

8. public Customer get(int id); 9. } 10. 11.

每三步:创建WebService接口实现类

Java 代码

1. @WebService

2. public class HelloServiceImpl implements HelloService { 3.

4. public void save(Customer c1, Customer c2) { 5.

6. System.out.println(c1.getAge()+\7. System.out.println(c1.getName()+\8. } 9.

10.public void test(String args) { 11. System.out.println(args); 12.

13.} 14.

15.public Customer get(int id) {

16. Customer cus = new Customer(); 17. cus.setAge(100);

18. cus.setName(\19. return cus; 20.} 21. 22. 23.

24. } 25.

第四步:创建服务端

Java 代码

1. public class SoapServer { 2.

3. ublic static void main(String[] args){ 4. //两种方法,任选一种发布WebService接口

5. //Endpoint.publish(\rvice\

6. HelloServiceImpl());

7. JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();

8. factory.setAddress(\9. factory.setServiceClass(HelloServiceImpl.class);

10. factory.getInInterceptors().add(new LoggingInInterceptor());

11.factory.getOutInterceptors().add(new LoggingOutInterceptor());

12.factory.create(); 13. 14. } 15.

第五步:创建客户端

Java 代码


WebService CXF学习(进阶篇2-4).doc 将本文的Word文档下载到电脑
搜索更多关于: WebService CXF学习(进阶篇2-4) 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219