关于webservice的5点说明

webservice应用是我05年进公司后的第一个项目应用,那时应用该技术的人还比较少,就拿我们公司来说,我是第一个尝蟹的人。现在找出了当时记得一些笔记,现拿出来以供大家共享。

这次主要写5点:
   1、用Java运行axis webService程序必备的8个jar包:axis.jar,jaxrpc.jar,commons-logging.jar,commons-discovery.jar,saaj.jar,mail.jar,activation.jar; wsdl4j.jar;.
 
   2、服务发布:服务端程序编写完之后需要发布此服务,最简单的方法就是把deploy.wsdd文件中的<service></service>及其中间的内容直接拷贝到/WEB-INF/server-conifg.wsdd文件中。如果server-config.wsdd文件不存在,则需要用命令的方式生成(java org.apache.axis.client.AdminClient deploy.wsdd),此方式最关键的就是环境变量的设置,如果环境变量设置不当,则运行此命令时不会在WEB-INF/下生成server-config.wsdd文件。

   3、关于vb.net调用JavaWebService的问题:java写的webservice服务与vb.net写的webservice服务通信时,遇到一个vb.net调用失败的问题。原因是java生成的以下类型Type=SoapEnv:string  不能被vb.net识别。解决方法:wsdl部署文件中,在全局变量中增加以下设置:<parameter name="dotNetSoapEncFix" value="true"/>
  
   4、客户端与服务端无法通信的最关键问题:在由同一份wsdl文件直接生成java文件时,不同的生成工具可能生成的java文件也不一样,其结果就是双方的某些数据类型可能不一样,从而造成客户端与服务端无法实现通信。就目前所明确的用Jbuilder直接把wsdl生成java文件时,wsdl中被描述为simpleType的类型也会生成一个java文件,而用axis命令行(java org.apache.axis.wsdl.WSDL2Java –s *.wsdl)则不会把simpleType类型生成java文件。发现问题所在的关键就是双方都依据同一份wsdl生成java语言的服务框架,然后再对比由此服务框架发布生成的wsdl文件间的区别!

    5、以上都是基于axis的说明,后来出现了axis2,另外还有xfire。这3个应用框架生成的服务或客户端都是可以无障碍通信的。

你可能感兴趣的:(java,webservice,vb,VB.NET,JBuilder)