當前位置:首頁 » 編程語言 » webservice客戶端java

webservice客戶端java

發布時間: 2022-09-04 05:32:53

Ⅰ webservice中怎樣用java寫客戶端程序()

基於AXIS的web service:

1 比如要建一個Server.java類的web service
public class Server {
public String printInfo(String name){
return "Hello,"+name;
}
}
2 把Server.java改為Server.Jws放到
…\Tomcat 5.5\webapps\axis中,重啟伺服器

3 訪問http://localhost:8080/axis/Server.jws?wsdl

4 在cmd中輸入 cd D:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\axis\WEB-INF
輸入命令:Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Server.jws?wsdl

5 找到…\Tomcat 5.5\webapps\axis\WEB-INF下生成的localhost文件夾復制到工程中

6 建一個Client端的類進行測試:
public class Client {
public static void main(String arg[]) throws ServiceException, RemoteException{
ServerService ss=new ServerServiceLocator();
Server s=ss.getServer();
System.out.println("............"+s.printInfo("shiyou"));
}
}

Ⅱ java的webService客戶端調用.net 和java服務端通用嗎

webservice由於是通用協議,與具體語言無關
所以理論上服務端實現語言的改動不至於影響客戶端

Ⅲ Java客戶端調用Webservice介面求代碼

客戶端獲得自定義對象包路徑必須和伺服器端相同,當然在客戶端也可以不用建該對象,可以將客戶端的自定義對象打成jar包,然後在客戶端引用。

猜想用反射也可以實現改對象,但目前沒有寫相關例子。

<p>importjava.io.Serializable;</p><p>{
/**
*客戶端必須有與伺服器端相同的自定義對象
*/
=1L;
privateStringid;
privateStringname;
publicStringgetId(){
returnid;
}
publicvoidsetId(Stringid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}

}</p>
[java]viewplain
packageclient;

importpo.Hello;

{
/*
[java]viewplain
*該方法名必須和服務介面一致
[java]viewplain
*/
[java]viewplain
publicHelloexample();
[java]viewplain
<preclass="java"name="code">packageclient;

importjava.net.MalformedURLException;//importjava.net.URL;

//importorg.codehaus.xfire.client.Client;
importorg.codehaus.xfire.client.XFireProxyFactory;
importorg.codehaus.xfire.service.Service;
importorg.codehaus.xfire.service.binding.ObjectServiceFactory;

importpo.Hello;

publicclassServicesClient{
publicstaticvoidmain(String[]arg)throwsMalformedURLException,
Exception{
Stringxml="http://localhost:8080/web/services/HeloWebService";
=newObjectServiceFactory();
ServiceserviceModel=objectServiceFactory
.create(IClientHelloManager.class);
=newXFireProxyFactory();
IClientHelloManagerservice=(IClientHelloManager)xFireProxyFactory
.create(serviceModel,xml);
HellolHello=service.example();
System.out.println(lHello.getId());
System.out.println(lHello.getName());
//Clientclient=newClient(newURL(
//"http://localhost:8080/web/services/HeloWebService?wsdl"));
//Object[]rsult=client.invoke("example",newObject[]{"hello"});
//Hellohello=(Hello)rsult[0];
//System.out.println();
}
}</pre>
<pre></pre>
<pre></pre>
<pre></pre>

Ⅳ java webservice生成的客戶端代碼 需要哪些jar包

1、安裝環境 J2SE SDK 1.4,Tomcat 5.0,eclipse 3.2。
2、下載Axis安裝包。
3、將Axis相關包文件放在WEB-INF\lib目錄下。
4、Axis可選的包:activation.jar; mail.jar; xmlsec-1.4.Beta1.jar拷貝到WEB-INF目錄下,生成客戶端時候需要使用。
Axis支持三種web service的部署和開發,分別為:
1、Dynamic Invocation Interface (DII)
2、Dynamic Proxy方式
3、Stubs方式
建議我們使用Stubs方式,因此我就主要就介紹一下第三種方式。
注意,Java源代碼是放在D:\workspace\test\目錄下,Axis相關包文件放在D:\workspace\test\WEB-INF目錄下。

Ⅳ java webservice客戶端代碼不生成可以嗎

WebService一般是做介面的,如果你要進行客戶端的調用,則需要生成客戶端代碼。客戶端代碼可以通過工具生成的,比如axis和axis2等都可以,如果你不願意自動生成則需要手動編寫了。

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

1,在Java項目中發布一個WebService服務:

如何發布?

——JDK1.6中JAX-WS規范定義了如何發布一個WebService服務;

(1)用jdk1.6.0_21以後的版本發布;

(2)與Web服務相關的類,都位於Javax.jws.*包中

@WebService——此註解用在類上指定將此類發布成一個WebService;

EndPoint——此類為端點服務類,其中publish()方法用於將一個已經添加了@WebService註解對象綁定到一個地址的埠上,用於發布。

2,例子:

(1)發布WebService服務

HelloWebService.java:

[java]view plain

  • <spanstyle="font-family:KaiTi_GB2312;font-size:18px;">packagecn.tgb.ws;

  • importjavax.jws.WebMethod;

  • importjavax.jws.WebService;

  • importjavax.xml.ws.Endpoint;

  • /**

  • *@WebService-它是一個註解,用在類上指定將此類發布成一個ws.

  • Endpoint–此類為端點服務類,它的方法publish用於將一個已經添加了@WebService註解對象綁定到一個地址的埠上。

  • *@authorxuemin

  • *

  • */

  • @WebService

  • publicclassHelloWebService{

  • publicStringHelloWord(Stringname){

  • return"Hello:"+name;

  • }

  • /**

  • *添加exclude=true後,HelloWord2()方法不會被發布

  • *@paramname

  • *@return

  • */

  • @WebMethod(exclude=true)

  • publicStringHelloWord2(Stringname){

  • return"Hello:"+name;

  • }

  • publicstaticvoidmain(String[]args){

  • /**

  • *參數1:服務的發布地址

  • *參數2:服務的實現者

  • */

  • Endpoint.publish("http://192.168.24.138:456/helloWord",newHelloWebService());

  • }

  • }</span>


  • 註:

    @WebService-它是一個註解,用在類上指定將此類發布成一個ws.

    Endpoint –此類為端點服務類,它的方法publish用於將一個已經添加了@WebService註解對象綁定到一個地址的埠上。

    運行以上程序進行發布。

    (2)查看wsdl

    地址:http://192.168.24.138:456/helloWord?wsdl

    只要在客戶端瀏覽器能看到此WSDL文檔,說明服務發布成功

    以上服務發布成功;

    總結:

    如何發布一個Web服務:

    a,在類上添加@WebService註解

    (註:此註解是jdk1.6提供的,位於javax.jws.WebService包中)

    b,通過EndPoint(端點服務)發布一個WebService

    (註:EndPoint是jdk提供的一個專門用於發布服務的類,該類的publish方法接收兩個參數,一個是本地的服務地址,二是提供服務的類。位於javax.xml.ws.Endpoint包中)

    c,註:

    類上添加註解@WebService,類中所有非靜態方法都會被發布;

    靜態方法和final方法不能被發布;

    方法上加@WebMentod(exclude=true)後,此方法不被發布;

    (3)客戶端訪問發布的服務

    根據WSDL文檔來在客戶端編寫代碼,訪問發布的服務;

    但是,WSDL文檔看不懂怎麼辦?代碼該如何編寫?

    ——你看不懂,JDK看得懂,wsimport是JDK自帶的,可以根據WSDL文檔生成客戶端調用代碼的工具。無論伺服器端WebService使用什麼語言編寫的,豆漿在客戶端生成Java代碼。所以伺服器用什麼語言編寫的並不重要。

    wsimport.exe命令參數熟知:

    -d:生成class文件。默認參數。

    -s:生成Java文件

    -p:自定義包結構

    解析地址生成源碼到E盤:


    MyClient.java:

  • [java]view plain
  • <spanstyle="font-family:KaiTi_GB2312;font-size:18px;">packagecn.tgb.ws;

  • publicclassMyClient{

  • publicstaticvoidmain(String[]args){

  • HelloWebServiceServicehwss=newHelloWebServiceService();

  • HelloWebServicehws=hwss.getHelloWebServicePort();

  • Stringresult=hws.helloWord("hanxuemin");

  • System.out.println(result);

  • }

  • }</span>

Ⅶ 關於Webservice介面的Java客戶端調用

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就是那麼易用的東西。

Ⅷ Java調用webservice介面,一台客戶端成功,一台客戶端失敗

如果可以的話,調用的時候,在服務端上面打斷點。這樣就知道是真的超時,還是沒連接上。不能打斷點,就在A上面,先測試一下IP埠是不是通的。

Ⅸ Java客戶端調用Webservice介面流程

給你看看以前寫的獲取電話號碼歸屬地的代碼的三種方法,然後你就懂了。

importjava.io.ByteArrayOutputStream;
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.net.HttpURLConnection;
importjava.net.URL;

importorg.apache.commons.httpclient.HttpClient;
importorg.apache.commons.httpclient.HttpException;
importorg.apache.commons.httpclient.methods.PostMethod;

publicclassMobileCodeService{

publicvoidhttpGet(Stringmobile,StringuserID)throwsException
{
//http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo?mobileCode=string&userID=string
URLurl=newURL("http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo?mobileCode="+mobile+"&userID="+userID);
HttpURLConnectionconn=(HttpURLConnection)url.openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");

if(conn.getResponseCode()==HttpURLConnection.HTTP_OK)//200
{
InputStreamis=conn.getInputStream();

=newByteArrayOutputStream();//

byte[]buf=newbyte[1024];
intlen=-1;
while((len=is.read(buf))!=-1)
{
//獲取結果
arrayOutputStream.write(buf,0,len);
}

System.out.println("Get方式獲取的數據是:"+arrayOutputStream.toString());
arrayOutputStream.close();
is.close();
}
}


publicvoidhttpPost(Stringmobile,StringuserID)throwsHttpException,IOException
{
//訪問路徑http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo
//HttpClient訪問

HttpClienthttpClient=newHttpClient();
PostMethodpm=newPostMethod("http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo");

pm.setParameter("mobileCode",mobile);
pm.setParameter("userID",userID);

intcode=httpClient.executeMethod(pm);
System.out.println("狀態碼:"+code);

//獲取結果
Stringresult=pm.getResponseBodyAsString();
System.out.println("獲取到的數據是:"+result);
}

publicvoidSOAP()throwsException
{
HttpClientclient=newHttpClient();

PostMethodmethod=newPostMethod("http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx");

//設置訪問方法的參數
method.setRequestBody(newFileInputStream("C:\soap.xml"));

method.setRequestHeader("Content-Type","text/xml;charset=utf-8");

intcode=client.executeMethod(method);
System.out.println("狀態碼:"+code);

//獲取結果
Stringresult=method.getResponseBodyAsString();
System.out.println("獲取到的數據是:"+result);
}

publicstaticvoidmain(String[]args)throwsException{
MobileCodeServicemcs=newMobileCodeService();
mcs.httpGet("18524012513","");
//mcs.httpPost("18524012513","");
//mcs.SOAP();
}
}

Ⅹ JAVA webservice 客戶端調用問題

這個應該你的jar包有問題,調用的時候不是對應的版本,就想json對象就有好幾個jar都定義了。

熱點內容
ea編程入門 發布:2025-01-15 13:30:11 瀏覽:411
應繳費檔次配置異常怎麼回事 發布:2025-01-15 13:20:34 瀏覽:617
成都php招聘 發布:2025-01-15 13:12:16 瀏覽:380
怎麼調用伺服器資料庫 發布:2025-01-15 13:06:25 瀏覽:656
人人網設置訪問許可權 發布:2025-01-15 13:02:06 瀏覽:563
崩壞學園2腳本 發布:2025-01-15 12:58:43 瀏覽:459
我的世界伺服器等級如何升 發布:2025-01-15 12:45:55 瀏覽:689
c語言程序填空題 發布:2025-01-15 12:45:53 瀏覽:545
怎麼配置氯化鈉濃度 發布:2025-01-15 12:34:06 瀏覽:206
4000除以125簡便演算法 發布:2025-01-15 12:27:41 瀏覽:464