我传的数组是String[]类型的。。
解决方案 »
- jsp中 session校验
- Jersey的问题
- 一般异常与运行时异常的区别
- 如何用struts1中的标签输出LIST里面存放的尸体类的值
- XML中使用外部DTD的问题
- struts2乱码问题,解答出来的是神仙了
- Struts2 Action 失败后如何返回JAVASCRIPT代码
- 急急急!!!请帮我看看Spring+hibernate是关于Oracle的数据库的连接的问题,总是说org.springframework.beans.factory.BeanCreationException:
- 关于Hibernate问题
- java读取xml配置的问题
- 中国人的J2EE应用服务器:金蝶Apusic应用服务器V4.0今日发布
- J2EE与Web Service应用开发的论
xmlns:ns="http://soapinterop.org/xsd"
qname="ns:strArray"
type="java:java.lang.String[]"
serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
/>
<operation name="sayStrArray" returnQName="return"
returnType="RTypeNS:strArray" xmlns:RTypeNS="http://soapinterop.org/xsd" >
</operation>
利用
java -Djava.ext.dirs=%AXIS_LIB% org.apache.axis.client.AdminClient deploy.wsdd命令部署到apache axis中.
部署文件就是deploy.wsdd
全部内容如下:<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="axisService" provider="java:RPC">
<parameter name="className" value="axisSvc"/>
<parameter name="allowedMethods" value="*"/><typeMapping
xmlns:ns="http://soapinterop.org/xsd"
qname="ns:strArray"
type="java:java.lang.String[]"
serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
/>
<operation name="sayStrArray" returnQName="return"
returnType="RTypeNS:strArray" xmlns:RTypeNS="http://soapinterop.org/xsd" >
</operation>
</service>
</deployment>
只有复杂的或自定义的对象本身才需要注册。
也就是说, 象String[]这样的数据直接传就行了。如果出错肯定是代码里其他的问题。
你用Delphi和.NET客户端试试看。
你把VB发出的SOAP信息打出来我看看。
错误信息:VB6调用时,发生的错误信息是:
实时错误'-2147024809(80070057)';
SoapMapper:Putting data into SoapMapper string failed HRESULT=0x80070057:参数错误。
-SoapMapper:Saving Soapmapper in0 failed HRESULT=0X80070057:参数错误。
-Client:unspecified client error.HRESULT=0x80070057:参数错误。错误信息截图:
http://www.ediom.net/game/temp_pic/error_vb.gif
象你说的这种情况,应该采用传递SOAP封装xml消息的方式。
理论上SOAP是支持RPC 的,但每种语言的SDK对SOAP-RPC的支持程度不同。SOAP标准也还在发展。你现在试了java和delphi,还有很多很多的客户端语言你都没试,你也没有精力也没必要去个个试到。
如果以后有新的需求,你的接口还得不断不断变化。测试工作量巨大。
直接传递xml消息那就简单了。你只要先定好xml的格式就行了。其他的事情客户端自己处理,不用你自己去费神了。以后如果有新的需求,你只要定好xml规范让客户端知道就行了。不用改接口。