中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Netbeans生成的Webservice

發布時間:2021-07-13 14:40:38 來源:億速云 閱讀:203 作者:chen 欄目:編程語言

這篇文章主要介紹“怎么用Netbeans生成的Webservice”,在日常操作中,相信很多人在怎么用Netbeans生成的Webservice問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用Netbeans生成的Webservice”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

用Netbeans生成webservice非常方便,當然,有jdk6環境是***,但有個問題經常困惑我們,就是在測試環境或開發環境中完成的代碼要實施部署到其他機器上 時,我們會束手無策,只好一個個去改代碼中的目標endpoint地址;有人說用配置文件啊,呵呵,在純粹手動寫的axis或xfire中也許很方便,但在Netbeans中這些自動生成的片段,改起來比較麻煩,雖然開發的時候托托拽拽很方便。以前,我一直就是這么安慰自己,事物都有兩面性嘛!最近看到Sun Webservice老大arun gupta的文章,發現其實要改變這個很容易,非常容易,不過還是有問題,下面會詳細講述。

舉個例子:

按Arun的說法,我們經常使用的wsdl已生成代碼來調用webservice,其中,jax-ws的版本是2.1

Hello port = new HelloService().getHelloPort();    String result = port.sayHello("Duke!");

當然,上面的描述都是對應特定ip地址發布的webservice,如果將此相同的服務最終部署到其他機器,就不能使用了。所以,我們可以在上面兩行之間增加另外一行代碼:

((javax.xml.ws.BindingProvider)port).getRequestContext().put(javax.xml.ws.BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "NEW_ADDRESS_HERE");

實際使用中直接將NEW_ADDRESS_HERE替換成相應的endpoint地址就行了。

我覺得Arun在測試的時候和我之前是犯了同樣的錯誤,在換了endpoint之后,如果按上面的方法,在原始的app server不關閉的時候是可行的,但這種情況很少發生。在執行“Hello port = new HelloService().getHelloPort();”這句代碼時,會先去取原始的wsdl文件,如果原始的app server已關閉,則會報異常,((javax.xml.ws.BindingProvider)port).getRequestContext().put(javax.xml.ws.BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "NEW_ADDRESS_HERE");這句代碼就不能再執行了。

經過摸索,我找到了一個好的方法,具體如下:

首先,要定義新的endpoint的URL:URL endpoint_new = new URL("NEW_ADDRESS_HERE");

再定義一個QName: QName qname = new QName("http://"+"ORIGINAL_PACKAGE","SERVICE_NAME");

其中NEW_ADDRESS_HERE就是新的endpoint地址,ORIGINAL_PACKAGE就是產生的webservice的包,SERVICE_NAME是發布的service名稱,試一下就知道,如果填錯了,會提示你哪些是有效的寫法。

***,Hello port = new HelloService().getHelloPort();這句要替換掉,改成Hello port = new HelloService(endpoint_new,qname).getHelloPort();

我在jax-ws官網又找到一篇文章:https://jax-ws.dev.java.net/guide/How_to_invoke_and_endpoint_by_overriding_endpoint_address_in_the_WSDL.html。它把上面兩種情況都包括進去了,只是沒怎么具體說明,讓人有點摸不著頭腦。

到此,關于“怎么用Netbeans生成的Webservice”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節
推薦閱讀:
  1. WebService
  2. webservice調用

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

博客| 托里县| 安远县| 平果县| 井冈山市| 绥化市| 奇台县| 蚌埠市| 安康市| 平遥县| 金溪县| 大厂| 忻州市| 双柏县| 胶州市| 西乌珠穆沁旗| 赣榆县| 南宫市| 无极县| 团风县| 平利县| 从化市| 宁波市| 四川省| 日照市| 禄丰县| 郓城县| 溆浦县| 大同市| 华坪县| 山西省| 美姑县| 山阴县| 邵武市| 安康市| 双城市| 大悟县| 商南县| 原平市| 舒城县| 固镇县|