社区
Java EE
帖子详情
jb9+axis
blue_tina_
2004-04-09 02:35:11
我初学axis,当遇到复杂数据类型时,都不知道应该怎么映射,比如返回值是一个LIst,List里面是多个bean的实例,bean的很多属性又是一个集合,用jb9自动生成好像也不准确哦,手动改的话不知道怎么改,要改那个文件(wsdd还是wsdl),哪里有详细的说明呢?我看过的例子都是
特简单的那种,一点实际遇到的问题都没提,谁能告诉我哪里有这方面的文档可以参看??省得我每遇到一个问题就到论坛上问了,:(
...全文
37
4
打赏
收藏
jb9+axis
我初学axis,当遇到复杂数据类型时,都不知道应该怎么映射,比如返回值是一个LIst,List里面是多个bean的实例,bean的很多属性又是一个集合,用jb9自动生成好像也不准确哦,手动改的话不知道怎么改,要改那个文件(wsdd还是wsdl),哪里有详细的说明呢?我看过的例子都是 特简单的那种,一点实际遇到的问题都没提,谁能告诉我哪里有这方面的文档可以参看??省得我每遇到一个问题就到论坛上问了,:(
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
usabcd
2004-04-09
打赏
举报
回复
我建议你直接使用对象数组。而不是使用java.util.*里的东西;
数组才是通用的,这样你的Web Service才能与其他语言的SOAP SDK交流,
否则与外界交流会出现很多麻烦。
客户端除了注册那个对象外也需要注册一个对象数组
qname = new QName(uri, "ArrayOf_tns1_MyJavaBean");
map.register(
MyJavaBean[].class,
qname,
new ArraySerializerFactory(),
new ArrayDeserializerFactory());
这样返回的结果就可以直接强制转换了。
blue_tina_
2004-04-09
打赏
举报
回复
我又看了一遍axis的例子,我觉得axis好狡猾阿,它是用bean数组来实现的,内部类型当然一目了然了,可是list(hashmap)集合怎么声明内部类型呢?
我觉得wsdl文件里应该有类似下面的标记,客户端才明白吧(我乱写的):
<complexType name="list">
<sequence>
<element name="item" >
<complexType>
<sequence>
<element name="key" type="anyType" />
<element name="value" type="com.....bean" />
</sequence>
</complexType>
</element>
</sequence> </complexType>
blue_tina_
2004-04-09
打赏
举报
回复
非常非常感谢你的回复!
我就是按照你的这个思路去做的。整个开发框架的搭建我是理解的,我的主要问题还是出现在
在wsdd描述文件里配置复杂数据类型序列化上,上面这个javabean的例子我也是理解的,但是如果是LIst(包含多个bean)的话,虽然list本身axis是认识的,可是如果不声明它内部的
对象是那中bean类型的话,客户端如何反序列化呢??
usabcd
2004-04-09
打赏
举报
回复
Axis 的开发看起来比较繁琐,但搞多了你就会很快
总结出一定的套路。复杂的应用也是有简单组合起来的。
在进行开发之前,你需要先确定:这个Web Service需要向外部
提供那些接口。接口的参数和返回值。最好就写出个java接口文件。
然后先做个空的类来实现这个接口。
然后再针对这个类编写wsdd文件。然后照标准的方法deploy 这样就搭起了一个
框架。最后再在类中实现具体的功能。并编写客户端测试。
其中我认为比较核心的事情,就是对象序列化。
凡是不属于基本类型的对象都需要序列化。因为axis需要知道怎样
把对象解析称xml文本在后传输。
wsdd里最重要的内容也就是指明那些对象需要序列化。
下面是一个wsdd的例子:
<deployment
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:ns="urn:Test">
<service name="MyService" provider="java:RPC" style="rpc" use="encoded">
<parameter name="wsdlTargetNamespace" value="Test"/>
<parameter name="className" value="com.xxx.xxx.MyServiceSOAPBindingImpl"/>
<parameter name="allowedMethods" value="*"/>
<typeMapping
qname="ns:MyJavaBean"
type="java:com.xxx.xxx.MyJavaBean"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
/>
</service>
</deployment>
这里MyJavaBean是自定义的JavaBean,需要注册。
其他都是通用的套路。
如果你返回的是一个List 而这个List里包含多个JavaBean
那么List本身不需要注册 axis会认得。
至于发布的方法和客户端的代码示例,你可以参考axis上的例子。
java SOAPHEADER的web service
c# JSON返回格式的WEB SERVICE//www.jb51.net/article/16768.htm我这里是利用
axis
创建类包的,首先下载
axis
的压缩包,然后解压,把
axis
放到webapp下面。如果可以运行,就OK了。 c#创建的webservice自带的wsdl的,...
FDTD3维matlab程序
% ex(i,j,k)=0 on the j=1, j=jb, k=1, and k=kb planes % ey(i,j,k)=0 on the i=1, i=ib, k=1, and k=kb planes % ez(i,j,k)=0 on the i=1, i=ib, j=1, and j=jb planes % These PEC boundaries form the outer ...
D3.js(v3)+react 实现带坐标与比例尺的散点图 (V3版本)
由此可以猜到,需要的元素包括circle(圆)和
axis
(坐标轴)。需要进行可视化的数据有: //圆心数据 var center = [ [0.5,0.5],[0.7,0.8],[0.4,0.9], [0.11,0.32],[0.88,0.25],[0.75,0.12], [0.5,0.1],[0.2,0.3],...
oncoprint:在R中创建Beautilful Oncoprints
- theme(
axis
.text.x = element_text(angle = 90, hjust = 1, vjust=.5))oncoprint(tcga_brca) + coord_fixed() + vert_x 主要功能( oncoprint(M) )在这种形式的字符串矩阵上工作: TCGA-BH-A1EV-01 TCGA-A2-A1FW-...
jQuery实现带幻灯的tab滑动切换风格菜单代码
本文实例讲述了jQuery实现带幻灯的...http://demo.jb51.net/js/2015/jquery-flash-style-tab-cha-menu-codes/ 具体代码如下: <!DOCTYPE html> <head> <meta http-equiv=Content-Type content=text/html;
Java EE
67,513
社区成员
225,878
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章