soap 服务端wsdl生成java代码及部署

环境:eclipse3.7 + Tomcat7.0.29 + axis(eclipse自带,1.x系列)

新建一个dynamic Web Project
如果eclipse仅仅安装Tomcat的话,可以忽略这个主意事项。
否则,在Target runtime 选项选择Tomcat或者None(因为选择其他服务器的话,从wsdl无法反向生成java)
 
右键项目,new-->other-->web services-->wsdl file
next 输入文件名, next

在Target namespace 输入命名空间,http://test.com/soap(这个决定你反向生成java文件所在的包,反向生成java后的包名为com.test.soap) 至于soap binding普遍采用document,rpc的好像比较麻烦。
点击finish
wsdl文件design视图,一般通过更改这个视图来改wsdl,改源码太麻烦了,由于这篇博客主要讲部署问题,所以soap不谈,需要的话请看
http://www.cnblogs.com/hanlsheng/archive/2011/01/24/1943052.htmlendpoint可以不用改,改了我也不知道会咋样。
 
右键工程,new-->other-->web services-->web service-->next
 
web service type 选择Top down java bean Web service (down那个是用java类生成soap服务的)
service service difinition :wsdl所在位置
服务我选deploy service(由于第一次认真接触这个,其他的不知道啥作用) service旁边的Configuration 点击相应的项,server runtime选择Tomcat ,
web service runtime选择Axis,不选Axis2(Axis2配置比较繁琐,同事说用Axis即Axis1.x系列) service project:选择你的项目
至于client 选择no client 一般默认
如果之前新建项目时的Target runtime不是tomcat或者none,此时就会报错。
 
点击Finish
 在src下生成所需的java类,一般xxx(wsdl名字)SoapImpl实现业务逻辑。
webcontent lib多了axis所需的jar,在web-inf有deploy.wsdd
右键工程,export-->web-->war file,
将war文件生成到tomcat安装目录下的webapp下
启动Tomcat 
项目.war会被解压
打开浏览器,输入http://localhost:8080/Soap/services/AdminService,若显示
 表示Axis安装成功
 
点击我的电脑,去Tomcat安装目录webapp下的项目目录,将deploy.wsdd拷贝到web-inf下,
打开cmd,进到Tomcat安装目录webapp下的项目目录soap\web-inf下
输入java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/SOAP(项目名)/services/AdminService deploy.wsdd
cmd 会生成web-inf 下生成server-config.wsdd(发布服务需要的东东)
server-config.wsdd考到项目的web-inf(不是tomcat安装目录下的)
 
将项目重新部署到Tomcat,浏览器输入http://localhost:8080/Soap(项目名)/services/soapSOAP?wsdl(wsdl文件名+SOAP)
如果显示wsdl内容则大功告成。
 
至于soap客户端,可以采用生成web client或者用soap ui。
posted @ 2013-03-27 22:26  世间安得两全法  阅读(3258)  评论(0编辑  收藏  举报