This example will lead you through creating your first service with Spring. You'll learn how to:
* Set up your build for CXF
* Writing a simple JAX-WS service 【设计与开发 JAX-WS 2.0 Web 服务】
* Set up the HTTP transport
具体参考 http://cxf.apache.org/docs/writing-a-service-with-spring.html
可以采用以下两种方法之一开发 Web 服务:
* 契约优先:从 WSDL 契约着手,生成 Java 类来实现服务。
* 代码优先:从 Java 类着手,使用 Annotation 来生成 WSDL 文件和 Java 接口。
[Developing a Service-Java First Development]
JAX-WS2.0 入门
(JAX-WS : Java API for XML Web Services)
接口定义:
@WebService(name = "UserService",targetNamespace = Constants.WS_NAMESPACE)
public interface UserWebService {
@WebResult(name = "user")
public UserDTO getUser(@WebParam(name = "userId") Integer userId);
}
* @WebService 必须,(name="UserService")可选,配置Service的名称,默认为类名。targetNamespace可选,默认为 http:// package的倒序,可在一个自己的Constants里定义统一的namespace. 如http://www.iteye.com
* 默认接口的所有方法均输出为WebService。
* @WebResult 可选,配置方法的返回值在WSDL的名称,CXF默认为result。
* @WebParam 可选,配置参数在WSDL的名称,CX比较笨F默认为arg0,arg1....
* @WebMethod 可选,有一个方法有此注释,则其他无注释的方法非WebService。
接口实现:
@WebService(endpointInterface = "com.javaeye.test.ws.user.UserWebService",targetNamespace = Constants.WS_NAMESPACE)
public class UserWebServiceImp
* @WebService(endpointInterface="") 必须,指定实现的接口。
* 在ServiceImpl中,最好命名@ServiceName 和 @PortName,否则默认以此类名来命名Service,如UserWebServiceImp,比较难看。
小结:
接口与实现类都需要@WebService(targetNamespace = Constants.WS_NAMESPACE),接口还需要属性name,实现需要属性endpointInterface。
CXF不会自动反射方法的参数名,每个方法的参数都需要重新标注。
JAXB2.0入门
(JAXB : Java Architecture for XML Binding)
@XmlType(name = "User")
public class UserDTO {
}
* JAXB的智能化较高,基本上不需要手工映射。
* 默认的@XmlAccessorType(XmlAccessType.PUBLIC_MEMBER )根据公共getter/setter与公共属性反射
(XmlAccessType.PROPERTY根据getter/setter反射,XmlAccessType.FIELD 根据成员变量反射)
* 如果有需要注释@XMLElement,@XMLAttribute,需配合XmlAccessorType定义,默认的PUBLIC_MEMBER,需要在getter/setter上定义,如果要写在成员变量上定义,则XmlAccessType改为FIELD。
* 用@XmlType定义 DTO名,否则名称默认小写。@XmlType(name = "User") 指定WSDL上的类型名称。
* @XmlTransient 可以注释某个字段,取消该字段的反射。
其他:
JAX-RPC 2.0 renamed to JAX-WS 2.0
jnn 写道
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规范。
引自:JAX-WS
分享到:
相关推荐
Apache CXF Web Service Development
Apache CXF Web Service Development 源码
Apache cxf 与spring集成
Apache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且...
Apache CXF 框架是一个比较有前途的开源 Web Services 框架,也是构建 SOA 架构应用的利器。本书采用案例源码和解说形式全面介绍 Apache CXF 框架的功能。 本书共 15 章,大致分为三个部分。第一部分介绍关于 SOA 和...
NULL 博文链接:https://chilongxph.iteye.com/blog/510707
Apache CXF Apache CXF Apache CXF Apache CXF Apache CXF Apache CXF Apache CXF Apache CXF Apache CXF
Apache CXF = Celtix + XFire,开始叫 Apache CeltiXfire,后来更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、...
Apache CXF配置REST服务,集成到Spring当中。
Apache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且...
2013版的 <基于Apache CXF构建SOA应用> 源码 Apache CXF是一个开放源码的Web服务框架,提供了一个易于使用,用于开发Web Services标准为基础的编程模型。本书主要介绍Apache CXF在构建SOA架构各个方面的应用说明和...
webserviceApache CXF java springboot利用Apache CXF创建webserice接口 Apache CXF 核心架构是以BUS为核心,整合其他组件。 * Bus是CXF的主干, 为共享资源提供一个可配置的场所,作用类似于Spring的...
apache cxf 2.1.3 的用户手册
详细的从入门到精通, 手把手的教你做WEB SERVICE 该资源借花献佛,是一个高手写的,我在这里借花献佛,推广推广,让大家多一个学习的机会,吃水不忘挖井人,轻大家也谢谢写该文档的高手
Apache CXF Web Service Development Developing+Web+Services+with+Apache+CXF+and+Axis2+(3rd+Edition)
apache cxf 3.1.8 java web service 开源框架
Apache CXF Web Service Development.pdf