MyEclipse6.0 安装axis2插件, 调用加密的SAP webservice
????? 首先鄙視一下自己,還在用myeclipse,竟然還是6.0版本,沒辦法,用習慣了,而且自己的開發機配置不高,裝過一些別的IDE,發現用的都不是很流暢。
?????? 項目要用java調用sap的webservice接口,自己決定用axis2的wsdl2java根據wsdl文件生成java類然后調用接口。網上到處找資料,折騰了一天,終于把接口調通了。下面介紹一下安裝調試的過程
首先參照的是這篇博文,資料和描述相當楚?http://blog.csdn.net/seven_zhao/article/details/6089747?
我對下面的下載地址做過改動,我下的插件是1_4_1這個目錄下的,war包是1.5.x releases下面的
1.?????? 下載Myeclipse Axis2插件
http://archive.apache.org/dist/ws/axis2/tools/1_4_1/
下載axis2-eclipse-codegen-wizard.zip和axis2-eclipse-service-archiver-wizard.zip
http://axis.apache.org/axis2/java/core/download.cgi
下載axis2-1.5-war.zip
2.解壓插件($ECLIPSE_HOME表示你安裝的myeclipse主目錄)
?????? 將上述兩個插件都解壓到$ECLIPSE_HOME/eclipse/plugins目錄中;
Axis2_Codegen_Wizard_1.3.0 和Axis2_Service_Archiver_1.3.0
?
3.?????? 在$ECLIPSE_HOME/eclipse/links目錄下增加文件axis-eclipse-plugin.link
寫入path= $ECLIPSE_HOME/eclipse/plugins (將$ECLIPSE_HOME替換為你的安裝目錄!!)
4.?????? 重新啟動myeclipse,在file->new->other中即可看到Axis2 Wizards,至此,axis2插件安裝成功!!(GXGX)
5.?????? 趕快試下用wsdl文件生成java源文件吧!是不是有錯誤出現?對~ 事情就是這樣發展的。
6.?????? An error occurred while completing process-java.lang.reflect.InvocationTargetException的錯誤
解決方法如下:
step 1、從AXIS2的LIB庫中復制"geronimo-stax-api_1.0_spec-1.0.1.jar"和
"backport-util-concurrent-3.1.jar"文件到Axis2_Codegen_Wizard_1.3.0的lib目錄中,同時修改Axis2_Codegen_Wizard_1.3.0下的plugin.xml文件,在<runtime>中添加
<library name="lib/geronimo-stax-api_1.0_spec-1.0.1.jar">
???????? <export name="*"/>
</library>
<library name="lib/backport-util-concurrent-3.1.jar">
??????? <export name="*"/>
</library>
到plugin.xml文件中,保存!
step 2、將 $workspace位置/.metadata/.plugins下目錄 Axis2_Codegen_Wizard 刪除
step 3、在命令行下切換至$ECLIPSE_HOME\eclipse目錄,然后執行:
eclipse –clear 或者是 eclipse -clean,不太記得了
但是參照這個安裝博文生成java類的時候仍然會出現?
An error occurred while completing process-java.lang.reflect.InvocationTargetException的錯誤?????
按照博文的說法也改了,但是還是行。
又找到了別的更改方法。那就是重命名Axis2_Codegen_Wizard_1.3.0為Axis2_Codegen_Wizard_1.4.0
更改這個目錄下的plugin.xml中的?version="1.4.0"
再重啟Myeclipse,成功!!!
至此Axis2安裝成功,下面用插件來生成java類吧,在myeclipse里flie--->new---->other 會出現
用code Generator吧
選擇使用wsdl生成java,選擇相應的wsdl文件點擊下一步出現我選擇custom
可以選擇生成測試方法,客戶端我選擇生成的是sync style的,之后是選擇生成的位置,注意包名,我試了幾次才放對地方。
工程了還要引入相應的jar包,這些jar包在axis2-1.5-war\axis2\WEB-INF\lib里,但是jar包太多,我參照網上給出的列表篩選出了一些放入其中,下面就是我整理的axis2客戶端所需要的jar包
在此還要給出缺失axis2 jar包引起的錯誤
各種類缺失對于的jar包:
org.apache.axis2.extensions.spring.receivers.ApplicationContextHolder -->axis2-spring-1.6.1.jar
org.apache.axis2.transport.http.AxisServlet ------------------------->axis2-transport-http-1.6.1.jar
javax.wsdl.xml.WSDLLocator ------------------------------------------->wsdl4j-1.6.2.jar
org.apache.ws.commons.schema.resolver.URIResolver -------------->XmlSchema-1.4.7.jar
org.apache.axiom.om.OMNode ------------------------------------------>axiom-api-1.2.12.jar
org.apache.axiom.om.impl.llom.factory.OMLinkedListMetaFactory ------>axiom-impl-1.2.12.jar
org.apache.neethi.PolicyComponent ------------------------------------------>neethi-3.0.1.jar
org.apache.axis2.transport.local.LocalTransportSender--------------->axis2-transport-local-1.6.1.jar
org.apache.commons.httpclient.HttpException-------------------------->commons-httpclient-3.1.jar
javax.mail.internet.ParseException ----------------------------------------->mail-1.4.jar
org.apache.commons.fileupload.FileItemFactory ------------------------>commons-fileupload-1.2.jar
org.apache.woden.resolver.URIResolver -------------------------------------->woden-api-1.0M9.jar
org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher ------------>axis2-jaxws-1.6.1.jar
org.apache.commons.io.FileUtils ------------------------------------------------>commons-io-1.4.jar
org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver ----------------->axis2-adb-1.6.1.jar
org.apache.axis2.rpc.client.RPCServiceClient?------------------------------ -->axis2-adb-1.6.1.jar
org.apache.axis2.AxisFault? --------------------------------------------------->axis2-kernel-1.6.1.jar
org.apache.axis2.addressing.EndpointReference ------------------------ -->axis2-kernel-1.6.1.jar
org.apache.axis2.client.Options ----------------------------------------------->axis2-kernel-1.6.1.jar
org.apache.commons.logging.LogFactory ---------------------------------->commons-logging-1.1.1.jar
org.apache.axis2.transport.http.CommonsHTTPTransportSender ------>axis2-transport-http-1.6.1.jar
org.apache.http.HttpResponseFactory ---------------------------------->httpcore-4.0.jar
org.apache.commons.codec.DecoderException ------------------------- -->commons-codec-1.3.jar
到這里我生成了一個xxxxxxStub類,這個類就是接口類啦~但是Sap需要ws-security的認證,這個用戶名和密碼填寫在哪里呢????
調用sap webservice的認證信息如下使用:
??ServiceStub serviceStub= new ServiceStub();
??HttpTransportProperties.Authenticator basicAuth = new HttpTransportProperties.Authenticator();??
???basicAuth.setUsername("userName");??
???basicAuth.setPassword("password");??
???serviceStub._getServiceClient().getOptions().setProperty(HTTPConstants.AUTHENTICATE, basicAuth);
最后大功告成~
總結
以上是生活随笔為你收集整理的MyEclipse6.0 安装axis2插件, 调用加密的SAP webservice的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: webservice生成客户端的方法
- 下一篇: Eclipse中要导出jar包中引用了第