你能从JAX-WS @WebMethod返回一个数组吗?
我很确定你可以,但除了回答标题中的问题之外,你还可以解释这些问题的优点,缺点,警告(如果有的话)吗? 我知道你不能从WebMethod返回List,Set,Collection,Map或任何接口(这是愚蠢的,IMO,但我不知道设计原因是什么,我应该拒绝判断)。
谢谢你的建议。
– LES
你可以返回数组,我发现它们很有用。
集合是一个问题的主要原因是某些语言(如C)不理解集合的概念,因此,为了保持可移植性,您需要确保传递可以用大多数语言表示的结构。
此外,我从不擅长传递集合,因为来自Web服务的内容应该是相当静态的。 如果要添加它,则将数组转换为集合,然后将数组传递回Web服务以进行更改。
詹姆斯是对的,你可以返回数组。 您还可以返回集合类型。 wsdl将类型定义为列表。 但是,大多数客户端会将类型转换为数组(至少这是我在C#中使用JAX-WS服务所做的)。
我使用第三方(Apache Axis2)来生成Web服务,我遇到了一个奇怪的问题,即wsdl没有被正确读取,并且消费者无法正确地反序列化数组。 有必要创建一个装饰器对象,它只包含数组对象,并从web方法返回。
我认为这只是Axis2与.NET Web服务互操作程序不兼容,但需要注意的事项。
- 德摩根定律
- 为什么要声明一个接口然后在Java中用它实例化一个对象?
- JavaFX中的multithreading挂起了UI
- 番石榴:Splitter并考虑逃离?
- 要从java中的DataInputStream读取的未知缓冲区大小
- EclipseLink JPA` @ PreUpdate`调用不会持久化
- GWT webappcreator创建Maven项目:源附件不包含文件URLClassPath.class的源
- 无法在项目上执行目标org.apache.maven.plugins:maven-compiler-plugin(default-compile):致命错误编译:找不到tools.jar
- 将文件从SFTP直接下载到HTTP响应,而不使用中间文件