使用SOAP协议时Web Services支持的数据类型

使用SOAP协议时Web Services支持的数据类型

http://expert.csdn.net/Expert/topic/2989/2989631.xml?temp=.9350855

我们将介绍Web Services中涉及到的各种数据类型,也就是Web Services方法的输入/输出参数类型。因为Web Services的执行是建立在XML架构之上的,所以它能够支持丰富的数据类型。下表列出了使用SOAP协议时Web Services支持的数据类型:

类型?描述
基础类型?也即标准基础类型,包括: String、Int32、Byte、Boolean、Int16、Int64、Single、Double、Decimal、DateTime(类似 XML中的timeInstant)、 DateTime(类似XML中的date)、DateTime(类似XML中的time)以及XmlQualifiedName(类似XML中的 QName)。
枚举类型?枚举类型。例如:. "public enum color { red=1, blue=2 }"
基础,枚举数组?上面提到的类型数组。例如:string[] 和 int[]
类和结构?带有公用域或属性的类和结构,公用域和属性是串行结构的
类和结构体数组?上述类型的数组
DataSet?ADO.NET DataSet 类型。DataSets能在类和结构体作为字段来使用。
DataSet数组?上述类型的数组
XmlNode? XmlNode是XML文档片断的内存表示,就好像一个轻量级的XML文档对象模型。比如说,"" 就可以存储在一个XmlNode类型变量中。我们可以将XmlNodes作为参数传递,以SOAP兼容方式附加到传递给Web Services的XML文档上。返回值也是同样原理。XmlNode也可看成是类或结构中的字段。
XmlNode数组?上述类型的数组
基础,枚举数组?上面提到的类型数组。例如:string[] 和 int[]
类和结构?带有公用域或属性的类和结构,公用域和属性是串行结构的
类和结构体数组?上述类型的数组
DataSet?ADO.NET DataSet 类型。DataSets能在类和结构体作为字段来使用。
DataSet数组?上述类型的数组
XmlNode? XmlNode是XML文档片断的内存表示,就好像一个轻量级的XML文档对象模型。比如说,"" 就可以存储在一个XmlNode类型变量中。我们可以将XmlNodes作为参数传递,以SOAP兼容方式附加到传递给Web Services的XML文档上。返回值也是同样原理。XmlNode也可看成是类或结构中的字段。
XmlNode数组?上述类型的数组

?


??? 当通过SOAP或者HTTP GET/POST调用Web Services时,返回值可以是上述提到的任何一种数据类型。
参数的数据类型
使 用SOAP协议时,"通过值"以及"通过引用"这两种输入/输出参数形式都可被支持。如果是"通过引用"的参数类型,就会产生两种方式的数据发送效果:到 服务器的以及返回到客户端的。但是,当通过HTTP GET/POST传递输入参数给Web Services时,就只支持有限的数据类型了,而且还必须是"通过值"形式的参数。这些类型如下:

类型?描述


基础类型 (有限的)?支持大多数标准基础类型,包括: Int32、String、Int16、Int64、Boolean、Single、Double、Decimal、DateTime、 TimeSpan、UInt16、UInt32、UInt64和Currency。从客户端来看,所有这些类型都转变为string。

枚举类型?比如: "public enum color { red=1, blue=2 }"。

基础类型数组,枚举类型数组?上述类型的数组,比如 string[]和int[]


?
类型?描述


基础类型 (有限的)?支持大多数标准基础类型,包括: Int32、String、Int16、Int64、Boolean、Single、Double、Decimal、DateTime、 TimeSpan、UInt16、UInt32、UInt64和Currency。从客户端来看,所有这些类型都转变为string。

枚举类型?比如: "public enum color { red=1, blue=2 }"。

基础类型数组,枚举类型数组?上述类型的数组,比如 string[]和int[]

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring框架提供了许多方式来编写和使用SOAP Web服务。下面是一些基本的步骤: 1. 导入Spring Web Services库 首先,需要在项目中导入Spring Web Services库。可以使用Maven或Gradle等构建工具添加以下依赖项: ``` <dependency> <groupId>org.springframework.ws</groupId> <artifactId>spring-ws-core</artifactId> <version>3.0.7.RELEASE</version> </dependency> ``` 2. 创建WSDL Web服务描述语言(WSDL)是一种XML格式,用于描述Web服务的接口、数据类型协议。可以使用Spring Web Services自动生成WSDL文件。 在Spring中,可以使用`@Endpoint`注解创建一个端点类,并使用`@PayloadRoot`注解指定请求的XML命名空间和元素名称。例如: ``` @Endpoint public class UserEndpoint { private static final String NAMESPACE_URI = "http://example.com/users"; @PayloadRoot(namespace = NAMESPACE_URI, localPart = "getUserRequest") @ResponsePayload public GetUserResponse getUser(@RequestPayload GetUserRequest request) { // 处理请求并返回响应 } } ``` 3. 配置Spring Web Services 可以使用Spring配置文件来配置Spring Web Services。以下是一个简单的配置文件示例: ``` <bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller"> <property name="contextPath" value="com.example.users"/> </bean> <bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory"/> <bean id="userEndpoint" class="com.example.users.UserEndpoint"/> <bean class="org.springframework.ws.transport.http.WebServiceExporter"> <property name="messageFactory" ref="messageFactory"/> <property name="port" value="8080"/> <property name="serviceMappings"> <props> <prop key="http://example.com/users">userEndpoint</prop> </props> </property> <property name="defaultEndpoint" ref="userEndpoint"/> </bean> ``` 在这个配置文件中,我们定义了一个JAXB Marshaller用于将Java对象转换为XML,一个SOAP消息工厂用于创建SOAP消息,以及一个Web服务导出器用于将Web服务公开在HTTP端口8080上。 4. 测试Web服务 现在,可以使用SOAP客户端来测试Web服务。可以使用许多不同的SOAP客户端工具,例如SOAPUI或Apache CXF。以下是一个使用Apache CXF的简单Java客户端示例: ``` JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.setServiceClass(UserService.class); factory.setAddress("http://localhost:8080/users"); UserService client = (UserService) factory.create(); GetUserRequest request = new GetUserRequest(); request.setId(1); GetUserResponse response = client.getUser(request); ``` 在这个示例中,我们创建了一个JAX-WS代理工厂,并使用它创建了一个Web服务客户端。然后,我们创建一个请求对象并调用Web服务方法。 这就是使用Spring编写和使用SOAP Web服务的基本步骤。当然,这只是一个简单的示例,实际应用中可能需要更复杂的配置和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值