WSDL2Java操作指南
生活随笔
收集整理的這篇文章主要介紹了
WSDL2Java操作指南
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 安裝JDK1.5, 配置系統(tǒng)環(huán)境變量:?
?? 下載安裝JDK后, 設(shè)置環(huán)境變量:?
?? JAVA_HOME=C:\Program Files\Java\jdk1.5.0_02?
?? Path=%Path%;%JAVA_HOME%\bin(這里的%Path%指你系統(tǒng)已經(jīng)有的一系列配置)?
?? CLASSPATH=%JAVA_HOME%\lib?
2. 下載axis, 配置系統(tǒng)環(huán)境變量:?
?? 下載axis后,配置如下:?
?? AXIS_LIB=F:\Java\axis\axis-1_4\lib?
?? 然后在CLASSPATH里添加axis的8個(gè)jar:?
?? CLASSPATH=%JAVA_HOME%\lib;?
%AXIS_LIB%\axis.jar;?
%AXIS_LIB%\axis-ant.jar;?
%AXIS_LIB%\commons-discovery-0.2.jar;?
%AXIS_LIB%\commons-logging-1.0.4.jar;?
%AXIS_LIB%\jaxrpc.jar;?
%AXIS_LIB%\log4j-1.2.8.jar;?
%AXIS_LIB%\saaj.jar;?
%AXIS_LIB%\wsdl4j-1.5.1.jar;?
???
3. 添加附加的3個(gè)jar:?
?? 自己去獲取activation.jar, mail.jar, xerces.jar, 放到AXIS_LIB所指的目錄下,?
然后在CLASSPATH里添加:?
?? CLASSPATH=%JAVA_HOME%\lib;?
%AXIS_LIB%\axis.jar;?
%AXIS_LIB%\axis-ant.jar;?
%AXIS_LIB%\commons-discovery-0.2.jar;?
%AXIS_LIB%\commons-logging-1.0.4.jar;?
%AXIS_LIB%\jaxrpc.jar;?
%AXIS_LIB%\log4j-1.2.8.jar;?
%AXIS_LIB%\saaj.jar;?
%AXIS_LIB%\wsdl4j-1.5.1.jar;?
%AXIS_LIB%\activation.jar;?
%AXIS_LIB%\mail.jar;?
%AXIS_LIB%\xerces.jar?
4. 獲取或者自己編寫wsdl文件?
5. 生成webservice服務(wù)器端的代碼:?
?? 5.1 先看命令的幫助, 在cmd.exe的提示符執(zhí)行:java org.apache.axis.wsdl.WSDL2Java -h?
?????? 我可以看到很多選項(xiàng),其中就有-s和-S?
?? 5.2 執(zhí)行WSDL2Java, 生成skeleton類:?
?????? java org.apache.axis.wsdl.WSDL2Java -s -S true BluePower.wsdl?
?????? 將生成:? A skeleton class?
????????????????? An implementation template class?
????????????????? One deploy.wsdd file?
????????????????? One undeploy.wsdd file?
?? 5.3 執(zhí)行WSDL2Java, 不生成skeleton類:?
?????? java org.apache.axis.wsdl.WSDL2Java -s BluePower.wsdl?
?????? 將生成:??
????????????????? An implementation template class?
????????????????? One deploy.wsdd file?
????????????????? One undeploy.wsdd file?
?????? (我們發(fā)現(xiàn)少了一個(gè)A skeleton class)?
?? 5.4 名字解釋:?
?? Skeleton class:?
????? 它是Axis engine 和 the actual service implementation 類之間的一個(gè)代理類。?
?????? The skeleton contains an implementation of the AddressBook service.?
?????? This implementation is either passed into the skeleton on construction,?
?????? or an instance of the generated implementation is created.?
?????? When the Axis engine calls the skeleton's addEntry method,?
?????? it simply delegates the invocation to the real implementation's addEntry method.?
?? Implementation Template class:?
?????? 它就是我們的實(shí)際服務(wù)器端的實(shí)現(xiàn)代碼,我們要在不同的方法里寫具體的實(shí)現(xiàn)處理。?
???????
6. 根據(jù)deploy.wsdd生成server-config.wsdd:?
? 這里比較模糊,我暫時(shí)的方法是:?
? 先部署一個(gè)web服務(wù)器,如用resin,然后把第5步生成的類文件放到classes下(eclipse可以指定編譯路徑),?
? 把deploy.wsdd放到classes上一目錄,也就是WEB-INF下,運(yùn)行命令:?
? java -cp %AXIS_CLASSPATH% org.apache.axis.client.AdminClient -lhttp://localhost:8080/test/services/MyServer deploy.wsdd?
? 若出現(xiàn):<Admin>Done processing</Admin>則成功,若出現(xiàn)失敗,則具體情況具體分析。?
? 成功后,當(dāng)前目錄就會(huì)生成server-config.wsdd文件。?
? 注意:為什么這里用%AXIS_CLASSPATH%, 因?yàn)橹苯影堰@些jar配置在CLASSPATH里,調(diào)用log4j時(shí)有沖突。最好不要放到CLASSPATH?
??
7. server-config.wsdd文件里的未解決的數(shù)組類型問(wèn)題:?
? 若接口參數(shù)或返回值有數(shù)組,則會(huì)生成ArrayMapping的配置,而在resin下配置axis的servlet去裝載,就是不行。
? 暫時(shí)的解決方法是,把這些數(shù)組類型就聲明為一般類型,就能裝載了;客戶端用數(shù)組類型訪問(wèn),服務(wù)器也能正常?
? 解析出來(lái),返回給客戶端的數(shù)組類型,客戶端也能正常解析。
?? 下載安裝JDK后, 設(shè)置環(huán)境變量:?
?? JAVA_HOME=C:\Program Files\Java\jdk1.5.0_02?
?? Path=%Path%;%JAVA_HOME%\bin(這里的%Path%指你系統(tǒng)已經(jīng)有的一系列配置)?
?? CLASSPATH=%JAVA_HOME%\lib?
2. 下載axis, 配置系統(tǒng)環(huán)境變量:?
?? 下載axis后,配置如下:?
?? AXIS_LIB=F:\Java\axis\axis-1_4\lib?
?? 然后在CLASSPATH里添加axis的8個(gè)jar:?
?? CLASSPATH=%JAVA_HOME%\lib;?
%AXIS_LIB%\axis.jar;?
%AXIS_LIB%\axis-ant.jar;?
%AXIS_LIB%\commons-discovery-0.2.jar;?
%AXIS_LIB%\commons-logging-1.0.4.jar;?
%AXIS_LIB%\jaxrpc.jar;?
%AXIS_LIB%\log4j-1.2.8.jar;?
%AXIS_LIB%\saaj.jar;?
%AXIS_LIB%\wsdl4j-1.5.1.jar;?
???
3. 添加附加的3個(gè)jar:?
?? 自己去獲取activation.jar, mail.jar, xerces.jar, 放到AXIS_LIB所指的目錄下,?
然后在CLASSPATH里添加:?
?? CLASSPATH=%JAVA_HOME%\lib;?
%AXIS_LIB%\axis.jar;?
%AXIS_LIB%\axis-ant.jar;?
%AXIS_LIB%\commons-discovery-0.2.jar;?
%AXIS_LIB%\commons-logging-1.0.4.jar;?
%AXIS_LIB%\jaxrpc.jar;?
%AXIS_LIB%\log4j-1.2.8.jar;?
%AXIS_LIB%\saaj.jar;?
%AXIS_LIB%\wsdl4j-1.5.1.jar;?
%AXIS_LIB%\activation.jar;?
%AXIS_LIB%\mail.jar;?
%AXIS_LIB%\xerces.jar?
4. 獲取或者自己編寫wsdl文件?
5. 生成webservice服務(wù)器端的代碼:?
?? 5.1 先看命令的幫助, 在cmd.exe的提示符執(zhí)行:java org.apache.axis.wsdl.WSDL2Java -h?
?????? 我可以看到很多選項(xiàng),其中就有-s和-S?
?? 5.2 執(zhí)行WSDL2Java, 生成skeleton類:?
?????? java org.apache.axis.wsdl.WSDL2Java -s -S true BluePower.wsdl?
?????? 將生成:? A skeleton class?
????????????????? An implementation template class?
????????????????? One deploy.wsdd file?
????????????????? One undeploy.wsdd file?
?? 5.3 執(zhí)行WSDL2Java, 不生成skeleton類:?
?????? java org.apache.axis.wsdl.WSDL2Java -s BluePower.wsdl?
?????? 將生成:??
????????????????? An implementation template class?
????????????????? One deploy.wsdd file?
????????????????? One undeploy.wsdd file?
?????? (我們發(fā)現(xiàn)少了一個(gè)A skeleton class)?
?? 5.4 名字解釋:?
?? Skeleton class:?
????? 它是Axis engine 和 the actual service implementation 類之間的一個(gè)代理類。?
?????? The skeleton contains an implementation of the AddressBook service.?
?????? This implementation is either passed into the skeleton on construction,?
?????? or an instance of the generated implementation is created.?
?????? When the Axis engine calls the skeleton's addEntry method,?
?????? it simply delegates the invocation to the real implementation's addEntry method.?
?? Implementation Template class:?
?????? 它就是我們的實(shí)際服務(wù)器端的實(shí)現(xiàn)代碼,我們要在不同的方法里寫具體的實(shí)現(xiàn)處理。?
???????
6. 根據(jù)deploy.wsdd生成server-config.wsdd:?
? 這里比較模糊,我暫時(shí)的方法是:?
? 先部署一個(gè)web服務(wù)器,如用resin,然后把第5步生成的類文件放到classes下(eclipse可以指定編譯路徑),?
? 把deploy.wsdd放到classes上一目錄,也就是WEB-INF下,運(yùn)行命令:?
? java -cp %AXIS_CLASSPATH% org.apache.axis.client.AdminClient -lhttp://localhost:8080/test/services/MyServer deploy.wsdd?
? 若出現(xiàn):<Admin>Done processing</Admin>則成功,若出現(xiàn)失敗,則具體情況具體分析。?
? 成功后,當(dāng)前目錄就會(huì)生成server-config.wsdd文件。?
? 注意:為什么這里用%AXIS_CLASSPATH%, 因?yàn)橹苯影堰@些jar配置在CLASSPATH里,調(diào)用log4j時(shí)有沖突。最好不要放到CLASSPATH?
??
7. server-config.wsdd文件里的未解決的數(shù)組類型問(wèn)題:?
? 若接口參數(shù)或返回值有數(shù)組,則會(huì)生成ArrayMapping的配置,而在resin下配置axis的servlet去裝載,就是不行。
? 暫時(shí)的解決方法是,把這些數(shù)組類型就聲明為一般類型,就能裝載了;客戶端用數(shù)組類型訪問(wèn),服務(wù)器也能正常?
? 解析出來(lái),返回給客戶端的數(shù)組類型,客戶端也能正常解析。
總結(jié)
以上是生活随笔為你收集整理的WSDL2Java操作指南的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 什么是财付通
- 下一篇: CXF wsdl2Java