我正在将JAX-WS用于Web服务。
每当我将char用作方法参数时,我都会在xsd中将其作为unsignedShort来获取(着重于weatherLetter)。
这是声明:
@WebMethod
public boolean setWXtatus(
@WebParam(name = "weatherLetter") char weatherLetter,
@WebParam(name = "weatherDigit") int weatherDigit,
@WebParam(name = "cloudCover") int cloudCover,
@WebParam(name = "cloudBaseInHundredsOfFeet") int cloudBaseInHundredsOfFeet,
@WebParam(name = "pressureInHg") int pressureInHg,
@WebParam(name = "visibilityInKm") int visibilityInKm,
@WebParam(name = "windSpeed") int windSpeed,
@WebParam(name = "windDirection") int windDirection,
@WebParam(name = "lastUpdateHour") int lastUpdateHour,
@WebParam(name = "lastUpdateMin") int lastUpdateMin
)
这是我得到的类型映射:
<xs:complexType name="setWXStatus">
<xs:sequence>
<xs:element name="weatherLetter" type="xs:unsignedShort" minOccurs="0"/>
<xs:element name="weatherDigit" type="xs:int"/>
<xs:element name="cloudCover" type="xs:int"/>
<xs:element name="cloudBaseInHundredsOfFeet" type="xs:int"/>
<xs:element name="pressureInHg" type="xs:int"/>
<xs:element name="visibilityInKm" type="xs:int"/>
<xs:element name="windSpeed" type="xs:int"/>
<xs:element name="windDirection" type="xs:int"/>
<xs:element name="lastUpdateHour" type="xs:int"/>
<xs:element name="lastUpdateMin" type="xs:int"/>
</xs:sequence>
</xs:complexType>
我怎样才能将weatherLetter生成为Char或1个字母字符串等?
更新:
一种实现方法是在XSD中(如果您 先签约
),例如直接向其添加XSD限制,例如
<xs:element name="singleChar">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
但是我认为问题是 合同最后 的问题(例如,编写生成XSD的代码,反之亦然)
据我所知,JAX-WS或JAXB尚不支持此功能(但有一个不错的增强要求)
资料来源:
JAX-WS和JAXB不支持针对XSD限制的代码生成(例如xsd:restriction) http://old.nabble.com/Does-
jaxb-2.1-enforce-xs:restriction-td21348458.html
原因是也不支持其他方向(通过注释生成限制)
解决方法:
看一下这个:http
:
//download.oracle.com/docs/cd/E17802_01/webservices/webservices/docs/1.5/tutorial/doc/JAXBUsing4.html
还有这个问题:
JAX-WS和Joda-Time?
不是完全按照自己的意愿去做,而是让您离自己更近一点
我认为您不能通过其他任何方式将其限制为1个字符,一个字符确实是一个无符号的short,并且您可以将其限制为1个“字符串”字符。
如果使用字符串,则将允许无限字符。和@WebParam没有一个API来限制长度
实际上,我完全没有看到使用JAX-WS进行XSD限制的方法,但是我可能错了
这是日志: 谢谢
ws-http 是一个简单轻量的HTTP 客户端工具库。可用于 HTTP API 测试,支持 ssl,basic auth,代理,自定义请求头,以及常用HTTP 请求方法。 $httpRequest = \Ws\Http\Request::create();$httpResponse = $httpRequest->get("https://api.github.com");$watcher =
实现基于Websocket 协议的 PHP类库 和 javascript类库 , 实现事件+回调函数的架构开发,以一个简单聊天室实例介绍其使用方法: 不同浏览器,不同电脑,不同地域, 实时通讯。实现的详细 请研究源码。 /***服务端****/ /** * 实例化 */ $io = new SocketIO('127.0.0.1',8000); /** * 监听连接 */ $io->on(
Coherent, zero-dependency, lazy, simple, GraphQL over WebSocket Protocol compliant server and client. Use Server-sent events (SSE) instead? Check out graphql-sse! Getting started Install yarn add grap
WS-Policy 定义了一个简单 XML 结构,由 4 个不同元素和一对属性组成。根据 WS-Policy 解释,这些元素和属性提供一种方法来组织和合并任意复杂度的策略断言(policy assertions)。为了定义构成策略的真实断言,您需要使用特定扩展,比如 WS-SecurityPolicy,而不是 WS-Policy 本身。 为了方便起见,WS-Policy 定义了一个标准形式的策略表
JAX-WS (JavaTM API for XML-Based Web Services)规范是一组XML web services的JAVA API。JAX-WS允许开发者可以选择RPC-oriented或者message-oriented 来实现自己的web services。 在 JAX-WS中,一个远程调用可以转换为一个基于XML的协议例如SOAP。在使用JAX-WS过程中,开发者不需要