導航:首頁 > 編程語言 > java動態webservice

java動態webservice

發布時間:2022-05-23 09:58:00

1. 各位大蝦java 中webservice的作用完全詳解!

當前,WebService是一個熱門話題。但是,WebService究竟是什麼?什麼情況下應該用WebService?什麼情況下不應該用WebService?是需要我們正確認識的。
Web Service 是一種新的web應用程序分支,他們是自包含、自描述、模塊化的應用,可以發布、定位、通過web調用。Web Service可以執行從簡單的請求到復雜商務處理的任何功能。一旦部署以後,其他Web Service應用程序可以發現並調用它部署的服務。
實際上,WebService的主要目標是跨平台的可互操作性。為了達到這一目標,WebService完全基於XML(可擴展標記語言)、XSD(XMLSchema)等獨立於平台、獨立於軟體供應商的標准,是創建可互操作的、分布式應用程序的新平台。由此可以看出,在以下三種情況下,使用WebService會帶來極大的好處。
長項一:跨防火牆的通信
如果應用程序有成千上萬的用戶,而且分布在世界各地,那麼客戶端和伺服器之間的通信將是一個棘手的問題。因為客戶端和伺服器之間通常會有防火牆或者代理伺服器。在這種情況下,使用DCOM就不是那麼簡單,通常也不便於把客戶端程序發布到數量如此龐大的每一個用戶手中。傳統的做法是,選擇用瀏覽器作為客戶端,寫下一大堆ASP頁面,把應用程序的中間層暴露給最終用戶。這樣做的結果是開發難度大,程序很難維護。
長項二:應用程序集成
企業級的應用程序開發者都知道,企業里經常都要把用不同語言寫成的、在不同平台上運行的各種程序集成起來,而這種集成將花費很大的開發力量。應用程序經常需要從運行在IBM主機上的程序中獲取數據;或者把數據發送到主機或UNIX應用程序中去。即使在同一個平台上,不同軟體廠商生產的各種軟體也常常需要集成起來。通過WebService,應用程序可以用標準的方法把功能和數據「暴露」出來,供其它應用程序使用。
例如,有一個訂單登錄程序,用於登錄從客戶來的新訂單,包括客戶信息、發貨地址、數量、價格和付款方式等內容;還有一個訂單執行程序,用於實際貨物發送的管理。這兩個程序來自不同軟體廠商。一份新訂單進來之後,訂單登錄程序需要通知訂單執行程序發送貨物。通過在訂單執行程序上面增加一層WebService,訂單執行程序可以把「AddOrder」函數「暴露」出來。這樣,每當有新訂單到來時,訂單登錄程序就可以調用這個函數來發送貨物了。
長項三:B2B的集成
用WebService集成應用程序,可以使公司內部的商務處理更加自動化。但當交易跨越供應商和客戶、突破公司的界限時會怎麼樣呢?跨公司的商務交易集成通常叫做B2B集成。
WebService是B2B集成成功的關鍵。通過WebService,公司可以把關鍵的商務應用「暴露」給指定的供應商和客戶。例如,把電子下單系統和電子發票系統「暴露」出來,客戶就可以以電子的方式發送訂單,供應商則可以以電子的方式發送原料采購發票。當然,這並不是一個新的概念,EDI(電子文檔交換)早就是這樣了。但是,WebService的實現要比EDI簡單得多,而且WebService運行在Internet上,在世界任何地方都可輕易實現,其運行成本就相對較低。不過,WebService並不像EDI那樣,是文檔交換或B2B集成的完整解決方案。WebService只是B2B集成的一個關鍵部分,還需要許多其它的部分才能實現集成。
用WebService來實現B2B集成的最大好處在於可以輕易實現互操作性。只要把商務邏輯「暴露」出來,成為WebService,就可以讓任何指定的合作夥伴調用這些商務邏輯,而不管他們的系統在什麼平台上運行,使用什麼開發語言。這樣就大大減少了花在B2B集成上的時間和成本,讓許多原本無法承受EDI的中小企業也能實現B2B集成。
短處一:單機應用程序
目前,企業和個人還使用著很多桌面應用程序。其中一些只需要與本機上的其它程序通信。在這種情況下,最好就不要用WebService,只要用本地的API就可以了。
短處二:區域網的同構應用程序
在許多應用中,所有的程序都是用VB或VC開發的,都在Windows平台下使用COM,都運行在同一個區域網上。例如,有兩個伺服器應用程序需要相互通信,或者有一個Win32或WinForm的客戶程序要連接區域網上另一個伺服器的程序。在這些程序里,使用DCOM會比SOAP/HTTP有效得多。
總之,只要從應用程序結構的角度看,有別的方法比WebService更有效、更可行,那就不要用WebService

2. java 怎樣調用本地webservice

WebService是基於Web的服務,WebService使用SOAP協議實現跨編程語言和跨操作系統平台,接收和響應外部系統的某種請求,從而實現遠程調用。WebService採用HTTP協議傳輸數據,採用XML格式封裝數據,SOAP協議=HTTP協議+XML數據格式。主要解決不了不同的系統或者調用分布部署的處理數據項目返回的介面。第一種,採用httpclient請求,這種跟經常用的HTTP請求一樣,結果可以是返回XML格式的字元串,比較容易對其進行解析,取得想要的數據。

3. eclipse 怎樣配置java webservice

用eclipse創建一個WebService應用非常方便,步驟如下:
1.安裝WebService插件。
2.安裝一個web伺服器。我這里用的是Tomcat。
3.創建一個Webservice服務。在eclipse中創建一個動態的web工程。New->Project->Dynamic Web Project。創建完成後,寫一個service類,比如:
public class LogonService {
public int checkUserRight(String userId, String password) {
//假設進行資料庫操作
if (password != null && "fred".equals(userId)) {
return 1;
}
return 0;
}
}
public int checkUserRight(String userId, String password)就是我們要調用的遠程方法。
4.在這個類的文件名上點擊右鍵,選擇」Web Services"->「Create Web Service」,就會出現下面的界面:

要選上TestClient(下面的那個圖片上),這樣創建Service的同時,會創建一個Service的test工程。
5.點擊next,

選擇方法名稱,
6.點擊"next",點擊「Start Server」,就會啟動Tomcat,並將工程部署上去。

7.如果點擊「Launch」會打開剛才創建的WebService的測試界面,可以進行測試。

8.這時候,會出現測試創建代理類的界面,代理類會創建在自動生成的測試工程中,也就是LogonWebServiceTest工程中。

9.點擊「next」,會自動生成代理類,並出現選擇測試方法的界面。你可以選擇相應的方法,這樣eclipse會生成相應的頁面。

10.點擊"Finish"就可以了,這時,會自動啟動一個頁面

點擊左邊相應的方法,就可以進行測試了。

註:遇到的問題
執行時報錯:D:\MyDrivers\software\apache-tomcat-7.0.50\bin\tcnative-1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
解決方法:把tomcat\bin 目錄下的tcnative-1.dll復制到jdk\bin目錄下
查看Tomcat是多少位:cmd—>cd 目錄下—>catalina version 就可以查看到
查看JDK是多少位:cmd—>java version 下面有顯示就是64位,沒有就是32位的

4. java的WebService最大的好處是什麼,最多的使用場合是什麼

1.web service本身不能做太多事,各種功能都是你自己編程實現的,但是你的程序只能自己用,自己看,別人根本不知道你的程序是什麼樣的。而web service就是規定了一種方式,告訴你將你的程序如何的部署到伺服器上,然後大家通過一種協商好的地址能找到你的程序的說明,說明的格式也是大家都協商好的,所以可以讀懂……然後你就可以根據那個地址來調用這個程序的方法了。
你看,web service 本身貌似沒干什麼,它就是讓你可以發布自己的程序和調用別人發布的程序。
2.協議基本就是上面提到的那些大家協商好的東西了,什麼形式?什麼格式?什麼樣式?之類的,可以說協議被庫支持,其實順序應該是先有了這個協議,然後這個庫遵從這個協議來解析,就說支持這個協議。
3.其實webservice傳的數據可以是任意啊,規定用各種格式只是考慮到webservice是牽扯到多方的,不規定的話就好像兩個人用不同語言交流,完全互相都不懂,那麼就沒意義了。xml是最通用的,你也可以說是和庫綁定的,但是因為它簡單通用,基本各種環境都支持解析xml

5. 如何在Java中快速發布WebService服務

在Java中快速發布WebService服務方法:
一、通過Axis2提供的模板自動發布

這種方法非常簡單,只要下載Axis包後從裡面的「axis-1_4\webapps」中找到axis站點,將它拷出來放到你要部署的tomcat/webapps下,再將要發布的java類放到axis文件夾里,再將文件名的後綴改為「jws」,這樣一個webservice就發布成功了。訪問時按照路徑「http://IP:Port/axis/類名.jws?wsdl」就可以了。
怎麼樣?這種方法非常是不是非常簡單?對,它特別適合初學java或者是手頭沒有很好的SDE開發和調試工具的時候。
但很明顯,這種方法不太好調試,又不能凸顯您的專業水準,更不能集成到您的開發環境里。所以如果您不是很急,就可以用下面一種辦法來發布:
二、通過JWS來手動發布
步驟如下:
1、在Eclipse里新建一個Dynamic Web Project,如下圖所示(相信這一步您比我還熟,所以會的可以略過):
2、在「Project Name」中輸入工程名稱,如「JavaWebService」:
3、一直單擊「Next」按鈕直到出現如下對話框:
在上面的對話框中一定要注意需要選中「Generate web.xml deployment descriptor」,否則後面再添加就比較麻煩。選中後單擊「Finish」按鈕即可完成工程創建。
4、引入必須的jar包:
axis.jar、commons-discovery-0.2.jar、commons-logging.jar、jaxrpc.jar、saaj.jar、wsdl4j.jar

最好將jar包拷貝到工程的WEB-INF/lib下後直接引用本工程內的jar包,這樣不會導致工程文件夾或jar包所在文件夾移動後讀取不到jar包的問題:
分別單擊頂層對話框和「Properties」對話框的「OK」按鈕完成jar包引用。

5、新建package和java文件,如下圖所示:
首先說說com.test.javabean.Student.java這個類。看得出來這個類是個JavaBean,目的是為了封裝一個Java的實體類,這樣做的好處是萬一要把很多變數返回給客戶端的話,客戶端不至於在方法中聲明很多形參來接收,而是通過一個對象來接收。Student.java的實現如下:

[java] view plain

package com.test.javabean;
import java.io.Serializable;
public class Student implements Serializable{
private String ID;
private String Name;
private String Sex;
private int age;
public String getID() {
return ID;
}
public void setID(String iD) {
ID = iD;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getSex() {
return Sex;
}
public void setSex(String sex) {
Sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
再來看看com.test.webservice.CStudent.java這個類,定義如下:
[java] view plain

package com.test.webservice;
import javax.jws.WebService;
import com.test.javabean.Student;
@WebService
public class CStudent {
public Student getStudent(String name) throws java.rmi.RemoteException{
Student student = new Student();
student.setName(name);
student.setAge(14);
student.setID("25");
student.setSex("Male");
return student;
}
}
為了簡單起見,就不涉及到更多的後台查詢了,先寫死返回結果吧。不知您注意到了沒有,這個類跟普通類的區別是在類的頂部加了個「@WebService」聲明。對,這樣就是個WebService方法了,是不是也很簡單?但是這樣就得記著在上面引入javax.jws.WebService包。偶對了,這種方式是JDK1.7里增加的方式,所以要想使用這種特性,就得麻煩您把JDK升級到1.7,方法很簡單,用綠色版的就可以啦,不用勞煩您把JDK卸了又重裝。只需要把JDK放到哪個盤的根目錄(這樣是為了防止路徑中有空格或是括弧什麼的,否則一旦出問題您就苦逼了),然後把JDK的路徑定義為JAVA_HOME,再在path中增加%JAVA_HOME%/bin;就可以了。這樣做的好處是可以隨時很方便地更換JDK的版本,而不需要卸載後再重新安裝。
扯遠了。有了WebService的方法體,您還需要再發布一下WebService,所以還得新建一個com.test.servlet.CStudentServlet.java類:
[java] view plain

package com.test.servlet;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Properties;
import javax.jws.WebService;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.ws.Endpoint;
import com.test.webservice.CStudent;
public class CStudentServlet extends HttpServlet{
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
super.init(config);
System.out.println("正在啟動WebService服務:http://192.168.56.1:8082/JavaWebService/Student");
Endpoint.publish("http://<span style="font-family: Arial, Helvetica, sans-serif;">192.168.56.1</span><span style="font-family: Arial, Helvetica, sans-serif;">:8082/</span><span style="font-family: Arial, Helvetica, sans-serif;">JavaWebService</span><span style="font-family: Arial, Helvetica, sans-serif;">/Student", new CStudent());</span>
}
/**
* @see Servlet#getServletConfig()
*/
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("進入WSServlet的service()方法");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}

上面的代碼中有處細節不知您注意了沒有:把IP地址、埠號、站點名等信息寫死到了代碼里。對,不僅如此,你這里寫的什麼IP,就必須用什麼IP訪問,即便是在本機寫成localhost都不可以。jws就是這么奇怪。所以在實際中可以參考一些資料動態獲取IP地址和埠號。

對了,您那邊代碼是不是報錯了?對,這是因為您還得做一步操作——添加server和對server組件包的引用,以tomcat為例,方法如下:
找到servers窗口,單擊「new server wizard...」鏈接:

打開如下對話框:

看到了吧?選擇Apache下的」Tomcat v7.0 Server「,然後單擊」Next「:

在上圖中單擊右側」Browse「按鈕,找到Tomcat所在的目錄,再在JRE中選擇1.7的JDK。如果您還沒有配置JDK,就請自行查找資料進行配置吧,某在這里就不講了,不然又扯遠啦。
然後進入這個窗口:

這個對話框得特別留意一下,不要著急單擊」Add「按鈕添加站點那,否則啟動後您就找不到站點部署的位置了。所以這一步直接單擊」Finish「。完畢後雙擊新添加的server,打開如下對話框:
在上面的窗口中,一定要先選擇第二項」Use Tomcat installation (takes control of Tomcat installation)「,然後在」Deploy path「中將內容改為」webapps「,然後再按下」Ctrl+S「鍵保存配置,這樣就可以把站點部署到您指定的tomcat的webapps下了。
然後記著給站點添加servlet-api.jar包的引用,在工程上單擊右鍵,選擇」Properties「,打開如下對話框:
看到了吧?切換到」Libraries「選項卡後先點擊右側的」Add Library「按鈕,再在彈出的窗口中選擇」Server Runtime「,單擊」Next「-->「Finish」和父窗口的」OK「按鈕就可以成功引入servlet所需的jar包了。怎麼樣?CStudentServlet.java中再沒有錯誤提示了吧?
下一步需要將servlet配置為自啟動,您只要在web.xml中增加如下內容就可以了:

[html] view plain
<servlet>

<servlet-name>CStudentServlet</servlet-name>
<servlet-class>com.test.servlet.CStudentServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CStudentServlet</servlet-name>
<url-pattern>/servlet/CStudentServlet</url-pattern>
</servlet-mapping>
記著把站點發布一下,在tomcat上單擊郵件,選擇「Add and Remove」,將JavaWebService發布到tomcat中。
下一步只要發布和啟動一下站點就可以了。如果您還不會,那就在server上單擊右鍵,選擇「Publish」,然後再選擇「Start」就可以了。
啟動成功

6. 關於java調用webservice

String endpoint="http://localhost:8080/xxx/services/userservice?wsdl";
String id = "11111";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new URL(endpoint));
call.setOperationName("webservice方法名");
String res = (String) call.invoke(new Object[] {id});
看了你的描述覺得你把webservice想得太復雜化了,其實就是一個jar包和幾個類。
以上就是最簡單的webservice客戶端用法,和反射有點像。當然返回值不一定是String,返回的類型和格式要問服務提供方。
我用的是axis的,我不了解websphere什麼的,但是webservice就是那麼易用的東西。
請採納。

7. java調用webservice介面具體怎麼調用

Java調用WebService可以直接使用Apache提供的axis.jar自己編寫代碼,或者利用Eclipse自動生成WebService Client代碼,利用其中的Proxy類進行調用。理論上是一樣的,只不過用Eclipse自動生成代碼省事些。 1、編寫代碼方式: package com.yun.test; import java.rmi.RemoteException; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.message.PrefixedQName; import org.apache.axis.message.SOAPHeaderElement; import com.cezanne.golden.user.Exception; import com.cezanne.golden.user.UserManagerServiceProxy; import javax.xml.namespace.QName; import java.net.MalformedURLException; import javax.xml.rpc.ServiceException; import javax.xml.soap.Name; import javax.xml.soap.SOAPException; public class testWebService { public static String getResult() throws ServiceException, MalformedURLException, RemoteException, SOAPException { //標識Web Service的具體路徑 String endpoint = "WebService服務地址"; // 創建 Service實例 Service service = new Service(); // 通過Service實例創建Call的實例 Call call = (Call) service.createCall(); //將Web Service的服務路徑加入到call實例之中. call.setTargetEndpointAddress( new java.net.URL(endpoint) );//為Call設置服務的位置 // 由於需要認證,故需要設置調用的SOAP頭信息。 Name headerName = new PrefixedQName( new QName("發布的wsdl里的targetNamespace里的url", "string_itemName") ); org.apache.axis.message.SOAPHeaderElement header = new SOAPHeaderElement(headerName); header.addTextNode( "blablabla" ); call.addHeader(header); // SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement("發布的wsdl里的targetNamespace里的url", "SoapHeader"); // soapHeaderElement.setNamespaceURI("發布的wsdl里的targetNamespace里的url"); // try // { // soapHeaderElement.addChildElement("string_itemName").setValue("blablabla"); // } // catch (SOAPException e) // { // e.printStackTrace(); // } // call.addHeader(soapHeaderElement); //調用Web Service的方法 org.apache.axis.description.OperationDesc oper; org.apache.axis.description.ParameterDesc param; oper = new org.apache.axis.description.OperationDesc(); oper.setName("opName"); param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg0"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false); param.setOmittable(true); oper.addParameter(param); param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg1"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false); param.setOmittable(true); oper.addParameter(param); param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg2"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false); param.setOmittable(true); oper.addParameter(param);

8. java程序怎麼調用webservice介面,實現發送簡訊功能

給你一個最簡單的方法:
第一、根據http://134.224.102.6:80/CompanySendSmInf/services/SmsInf?wsdl 拿到WSDL文件。
第二、根據Axis的jar包,把WSDL文件生成客服端java代碼。(可以把java文件打成jar文件,便於管理。怎麼生成java代碼,網路里都有說明我就不寫了。)
第三、在你工程里用AXIS的功能屬性,調用外部介面;給你一個格式模板:
MobileCodeWSLocator l=new MobileCodeWSLocator();//MobileCodeWSLocator是WSDL文件生成客服端java類;
MobileCodeWSSoap s=l.getMobileCodeWSSoap();();//MobileCodeWSSoap 是WSDL文件生成客服端java類

String m=s.getMobileCodeInfo("13811534742", "");
如果你用Axis生成的java類,格式和上面一樣;自己參考一下就懂了。

你上面明顯的連接異常,第三方服務明顯沒有開,WEBSERVICE可以設置戶名、密碼,像行所有的WEBSERVICE都設置,安全考慮吧。

9. java不用wsdl2java生成怎麼動態調用webservice

cxf中,支持動態調用的,雖然稍慢一點

public static Object[] routeServer(String methodName,Object param) throws Exception{
String url = "http://192.168.10.104/getClient?wsdl";
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); // 策略
httpClientPolicy.setConnectionTimeout( 36000 ); //連接超時
httpClientPolicy.setAllowChunking( false );
httpClientPolicy.setReceiveTimeout( 10000 ); //接收超時
Client client = dcf.createClient(url);
HTTPConit http = (HTTPConit) client.getConit();
http.setClient(httpClientPolicy);
return client.invoke(methodName, param);

}

10. java 如何實現webservice 怎麼調用介面

一、利用jdkweb服務api實現,這里使用基於SOAPmessage的Web服務

①.首先建立一個WebservicesEndPoint:packageHello;
importjavax.jws.WebService;
importjavax.jws.WebMethod;
importjavax.xml.ws.Endpoint;
@WebService
publicclassHello{
@WebMethod
publicStringhello(Stringname){
return"Hello,"+name+" ";
}
publicstaticvoidmain(String[]args){
//createandpublishanendpoint
Hellohello=newHello();
Endpointendpoint=Endpoint.publish("


,hello);
}
}
②.使用apt編譯Hello.java(例:apt-d[存放編譯後的文件目錄]Hello.java),
會生成jaws目錄
③.使用javaHello.Hello運行,然後將瀏覽器指向


就會出現下列顯示
④.使用wsimport生成客戶端使用如下:
wsimport-p.-keep


這時,會在當前目錄中生成如下文件:
⑤.客戶端程序:
1classHelloClient{
2publicstaticvoidmain(Stringargs[]){
3HelloServiceservice=newHelloService();
4HellohelloProxy=service.getHelloPort();
5Stringhello=helloProxy.hello("你好");
6System.out.println(hello);
7}
8}

以上方法還稍顯繁瑣,還有更加簡單的方法


二、使用xfire,我這里使用的是myeclipse集成的xfire進行測試的利用xfire開發WebService,可以有三種方法:

1. 一種是從javabean中生成;

2.一種是從wsdl文件中生成;

3. 還有一種是自己建立webservice

步驟如下:

用myeclipse建立webservice工程,目錄結構如下:首先建立webservice介面,

代碼如下:

1packagecom.myeclipse.wsExample;
2//GeneratedbyMyEclipse
3
{
5
6publicStringexample(Stringmessage);
7
8}
接著實現這個借口:
1packagecom.myeclipse.wsExample;
2//GeneratedbyMyEclipse
3
{
5
6publicStringexample(Stringmessage){
7returnmessage;
8}
9
10}



修改service.xml文件,加入以下代碼:

1<service>
2<name>HelloWorldService</name>
3<serviceClass>
4com.myeclipse.wsExample.IHelloWorldService
5</serviceClass>
6<implementationClass>
7com.myeclipse.wsExample.HelloWorldServiceImpl
8</implementationClass>
9<style>wrapped</style>
10<use>literal</use>
11<scope>application</scope>
12</service>


把整個項目部署到tomcat伺服器中打開瀏覽器,輸入http://localhost:8989/HelloWorld/services/HelloWorldService?wsdl,可以看到如下:

然後再展開HelloWorldService後面的wsdl可以看到:

客戶端實現如下:

1packagecom.myeclipse.wsExample.client;
2
3importjava.net.MalformedURLException;
4importjava.net.URL;
5
6importorg.codehaus.xfire.XFireFactory;
7importorg.codehaus.xfire.client.Client;
8importorg.codehaus.xfire.client.XFireProxyFactory;
9importorg.codehaus.xfire.service.Service;
10importorg.codehaus.xfire.service.binding.ObjectServiceFactory;
11
12importcom.myeclipse.wsExample.IHelloWorldService;
13
14publicclassHelloWorldClient{
15publicstaticvoidmain(String[]args)throwsMalformedURLException,Exception{
16//TODOAuto-generatedmethodstub
17Services=newObjectServiceFactory().create(IHelloWorldService.class);
18XFireProxyFactoryxf=newXFireProxyFactory(XFireFactory.newInstance().getXFire());
19Stringurl="

20
21try
22{
23
24IHelloWorldServicehs=(IHelloWorldService)xf.create(s,url);
25Stringst=hs.example("zhangjin");
26System.out.print(st);
27}
28catch(Exceptione)
29{
30e.printStackTrace();
31}
32}
33
34}

有時候我們知道一個wsdl地址,比如想用java客戶端引用net做得webservice,使用myeclipse引用,但是卻出現無法通過驗證的錯誤,這時我們可以直接在類中引用,步驟如下:

1.publicstaticvoidmain(String[]args)throwsMalformedURLException,Exception{
2.//TODOAuto-generatedmethodstub



閱讀全文

與java動態webservice相關的資料

熱點內容
台達PLC編譯按鈕在哪裡 瀏覽:137
非編程計算器多少錢 瀏覽:653
房本還完貸款解壓 瀏覽:816
中國程序員有出名嗎 瀏覽:546
亳州雲伺服器 瀏覽:630
程序員最難的面試 瀏覽:892
配音秀app怎麼誦讀 瀏覽:750
sparkcore源碼 瀏覽:100
程序員中年生活 瀏覽:355
讀取加密信息失敗怎麼回事 瀏覽:510
編譯過程之後是預處理嗎 瀏覽:351
安卓是基於什麼做出來 瀏覽:600
視頻字幕提取APP怎麼使用 瀏覽:59
js通過ip地址連接伺服器嗎 瀏覽:848
java數字金額大寫金額 瀏覽:858
人人影視路由器固件編譯 瀏覽:967
照片通訊錄簡訊怎麼從安卓到蘋果 瀏覽:458
邏輯開發編譯環境 瀏覽:672
ce自己編譯 瀏覽:898
javaexe進程 瀏覽:478