當前位置:首頁 » 操作系統 » javawebservice源碼

javawebservice源碼

發布時間: 2022-08-10 01:28:29

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目錄下。

⑵ 發布webservice,java類初始化問題

發布成webservice後,我發現,不管是調用其中的get,set,方法,構造函數都要被調用一次,而且每次get,set里列印的地址也不一樣,怎麼能使得set以後,能get到set的字元串呢?謝謝

這說明每次你調用webservice都會實例化一個Test對象
所以你第二次get調用時 也會觸發構造方法 也就是說這時候的Test已經是一個新的實體類了和你set的時候不是一個對象了

你的需求用一般的servlet就行了 每次用戶通過你開發servlet開遠程式控制制socket伺服器

⑶ java調用webservice例子

現在大多數項目都會用到spring,所以選擇 CXF 框架,cxf能很好的和spring結合


在官網下載最新版 xcf 3.0.3 網站 http://cxf.apache.org/


MyEclipse項目結構圖


結構圖中各個文件源碼

HelloWorldImpl.java

---------

import javax.jws.WebService;


@WebService(endpointInterface = "IHelloWorld", serviceName = "HelloWorld")

public class HelloWorldImpl implements IHelloWorld {

@Override

public String sayHello(String text) {

return "serviceSay: " + text;

}

}

------------------------------------------------------------------------------------------------



IHelloWorld.java

---------

import javax.jws.WebService;


@WebService

public interface IHelloWorld {

public String sayHello(String text);

}

------------------------------------------------------------------------------------------------


Test.java

---------

import org.apache.cxf.endpoint.Client;

import org.apache.cxf.endpoint.dynamic.DynamicClientFactory;


public class Test {

public static void main(String[] args) throws Exception {

DynamicClientFactory dcf = DynamicClientFactory.newInstance();

Client c = dcf.createClient("http://localhost:8080/cxf/ws/hwUrl?wsdl");

Object[] param = new Object[] { "----test....." };

Object[] result = c.invoke("sayHello", param);

System.out.println(result[0].toString());

}


}

------------------------------------------------------------------------------------------------



cxf-servlet.xml

-----------------

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"

xmlns:soap="http://cxf.apache.org/bindings/soap"

xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">

<jaxws:server id="hwService" serviceClass="IHelloWorld"

address="/hwUrl">

<jaxws:serviceBean>

<bean class="HelloWorldImpl" />

</jaxws:serviceBean>

</jaxws:server>

</beans>

------------------------------------------------------------------------------------------------


web.xml

---------

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

<display-name></display-name>

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

<servlet>

<servlet-name>cxfS</servlet-name>

<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>cxfS</servlet-name>

<url-pattern>/ws/*</url-pattern>

</servlet-mapping>

</web-app>

------------------------------------------------------------------------------------------------



部署項目,然後運行Test.java

在瀏覽器裡面輸入http://localhost:8080/cxf/ws/hwUrl?wsdl 可查看webservice服務介面信息

⑷ 用JAVA做webservice介面原代碼

建議你用新標准開發:jaxws
可以下載 jaxws-ri (標准參考實現),裡面有很完備的例子。
另外,你可以用Apache CXF做為運行容器。

⑸ C# 調用java webservice 介面

C#調用WEBSERVICE
只要在項目中添加WEBSERVICE引用就行了.
輸入網址.很簡單的

document對象
序列化 和 反序列化
JAVA C# 那個參數都用文本傳遞接受

⑹ 誰有Java開發webservice 的完整實例參考一下,謝謝啦!

java實現webservice實例
文章分類:Java編程
今天下午突然想研究下WEBSERVICE,從網上找了好多實例,但很多寫的讓人實在難以恭維,花了三個小時的圈圈轉後總算搞通了,其實也挺簡單的,這里特別感謝http://www.liuzm.com/article/java/992.htm這篇文章,總算讓我弄明白了,現在貼出我的實例步驟,感謝那個博主的同時,與大家共同分享。

一:

首先創建個WEB工程,然後: http://ws.Apache.org/axis/網站下載Axis安裝包.當然還依賴其他包的,我這里在附件里上傳了所有應用到得包,方便大家。

二:

然後就寫wsdd 文件(注:其實這里真的不用,可以跳過第二步)為了生成這個文件:server-config.wsdd

deploy.wsdd:

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="" target="_blank">http://xml.apache.org/axis/wsdd/providers/java">
<service name="HelloWorld" provider="java:RPC">
<parameter name="className" value="HelloWorld"/>
<parameter name="allowedMethods" value="sayHello"/>
</service>
</deployment>

在DOS下轉換目錄到%TOMCAT_HOME%\webapps\axis\WEB-INF,命令:
java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd

三:

可以自己寫第二步中的文件,代碼如下:

<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

<globalConfiguration>
<parameter name="sendMultiRefs" value="true"/>
<parameter name="disablePrettyXML" value="true"/>
<parameter name="dotNetSoapEncFix" value="true"/>
<parameter name="" value="false"/>
<parameter name="sendXMLDeclaration" value="true"/>
<parameter name="sendXsiTypes" value="true"/>
<parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
</globalConfiguration>

<handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>
<service name="Login.jws" provider="java:RPC">
<parameter name="className" value="server.SayHello"/>
<parameter name="scope" value="request"/>
<parameter name="allowedMethods" value="*"/>
<messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
</service>
<transport name="http">
<requestFlow>
<handler type="URLMapper"/>
</requestFlow>
</transport>
</deployment>

放到 WEB-INF 目錄下 和web.xml一起,其中,WEB.XML可以直接從你下載的axis項目中拿來到自己工程就好,或者自己添加:

<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>

四:

服務端提供的方法:

package server;

public class SayHello {
public String getName(String name) {
return "hello====>" + name;
}
}

五:

客戶端訪問服務端介面獲得數據的方法:

package client;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class TestClient {

public static void main(String[] args) throws Exception {

// 指出service所在URL

String endpoint = "http://127.0.0.1:8082/webservice/services/Login.jws";

// 創建一個服務(service)調用(call)

Service service = new Service();

Call call = (Call) service.createCall();// 通過service創建call對象

// 設置service所在URL

call.setTargetEndpointAddress(new java.net.URL(endpoint));

// 方法名(processService)與MyService.java方法名保持一致

call.setOperationName("getName");

// Object 數組封裝了參數,參數為"This is Test!",調用processService(String arg)

String ret = (String) call.invoke(new Object[] { "繼中" });

System.out.println(ret);

}

}
六:啟動tomcat,先訪問http://127.0.0.1:8082/webservice/services,看是否有方法顯示,有顯示,則代表服務端提供的介面可以成功訪問了。
我的效果是這樣:
And now... Some Services
•Login.jws (wsdl)
◦getName
七:

然後在本地跑客戶端TestClient,就應該有結果啦,大家試試吧。

需要lib.jar可以到這里找http://yangjizhong.javaeye.com/blog/579511

⑺ java 項目怎麼調用.net寫的webService,求源碼。

  1. 發布.net webservice得到wsdl地址:(你的)http://222.92.47.171:8003/SZDataExchange/SZDataExchange.asmx?wsdl

  2. 根據wsdl2java工具包生成對應java客戶端


    publicstaticvoidmain(String[]args)throwsServiceException,RemoteException{
    //TODOAuto-generatedmethodstub
    Service1_Service1=newService1Locator();
    Service1Soap_PortType_Service1Soap_PortType;
    StringresultStr=null;

    _Service1Soap_PortType=_Service1.getService1Soap();
    resultStr=_Service1Soap_PortType.helloWorld("zybaby");

    System.out.println(resultStr);

    }



⑻ java webservice例子,例子完整,最好有注釋,demo也行!但是一定要完整!謝謝!

剛好 我這兩天也在學webservice,給你一個我才學的例子
1.解壓axis壓縮包,然後解壓,取出裡面的webapps裡面的axis項目放到tomcat中的webapps中,然後啟動tomcat

項目的發布有兩種形式
1.即時發布
直接在axis中放置java源文件,注意後綴名字改為.jws.注意源文件中不要有任何的導包語句
詳細步驟如下
1.直接在axis目錄下編寫java源文件,寫好後把後綴名改為jws。如Demo.jws
2.重啟動伺服器,在瀏覽器中輸入http://127.0.0.1:8080/axis/Demo.jws,點開後得到一個網址http://127.0.0.1:8080/axis/Demo.jws?wsdl
3.在myeclipse中導入網址http://127.0.0.1:8080/axis/Demo.jws?wsdl,可以執行裡面的方法就可以了。
2.定製發布
編寫要發布為伺服器javaBean
編寫生成class文件放在tomcat中的axis中的webinf中的classes中
編寫deploy.wsdd文件描述伺服器的名稱入口等信息。
詳細步驟
以一個add為例子
1.編寫javaBean代碼
public class add {
public Integer getAdd(Integer a, Integer b){
return a+b;
}

}
2.將class文件放入axis中的webinf下的classes中
注意,如果該類有包的話,就要建立相應的文件名,如
package com.ssh.webservice
那麼classes文件下就要有相應的com文件夾,ssh文件夾,webservice文件夾

3.寫上他的描述文件wsdd文件
描述文件直接放到classes中即可,名字為deploy.wsdd,文件為
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="Add" provider="java:RPC">
list中顯示的名字
<parameter name="className" value="add"/>
調用的類
<parameter name="allowedMethods" value="*"/>
指定調用的方法
</service>
</deployment>

4.編寫批處理文件.bat文件,如下
set classpath=%classpath%;E:\ur2001Tomcat\apache-tomcat-6.0.32\webapps\axis\WEB-INF\lib\axis.jar;
set classpath=%classpath%;E:\ur2001Tomcat\apache-tomcat-6.0.32\webapps\axis\WEB-INF\lib\axis-ant.jar;
set classpath=%classpath%;E:\ur2001Tomcat\apache-tomcat-6.0.32\webapps\axis\WEB-INF\lib\commons-discovery-0.2.jar;
set classpath=%classpath%;E:\ur2001Tomcat\apache-tomcat-6.0.32\webapps\axis\WEB-INF\lib\commons-logging-1.0.4.jar;
set classpath=%classpath%;E:\ur2001Tomcat\apache-tomcat-6.0.32\webapps\axis\WEB-INF\lib\jaxrpc.jar;

set classpath=%classpath%;E:\ur2001Tomcat\apache-tomcat-6.0.32\webapps\axis\WEB-INF\lib\log4j-1.2.8.jar;
set classpath=%classpath%;E:\ur2001Tomcat\apache-tomcat-6.0.32\webapps\axis\WEB-INF\lib\saaj.jar;
set classpath=%classpath%;E:\ur2001Tomcat\apache-tomcat-6.0.32\webapps\axis\WEB-INF\libwsdl4j-1.5.1.jar

java org.apache.axis.client.AdminClient E:\ur2001Tomcat\apache-tomcat-6.0.32\webapps\axis\WEB-INF\classes\deploy.wsdd
然後運行該批處理文件

5.啟動伺服器,在瀏覽器中輸入項目的發布地址,如http://127.0.0.1:8080/axis/就會有已個list,然後點進方法

6.編寫客戶端代碼,如下
package com.ssh.client;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

import javax.xml.namespace.QName;

public class TestClient
{
public static void main(String [] args) {
try {
String endpoint =
"http://127.0.0.1:8080/axis/services/Test01";
這個地址是值xml文件中的最後一行的local地址
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName(new QName("getMessage") );
指定調用的方法
String ret = (String) call.invoke( new Object[] { } );
如果有參數需要傳入的話直接在括弧裡面寫上1,2,2等
System.out.println(ret);
} catch (Exception e) {
System.err.println(e.toString());
}
}
}

我這里還有webservice的教學視屏,要的話說一聲

⑼ Java調WebService完整的實例

首先, 你要先把你的WS服務啟動起來,就是http://localhost:8080/Example/services/HelloWorldService?wsdl
然後在你的另一個項目中建一個Webservice Client 客戶端,用來訪問你的WS服務。
建立Webservice Client 方法如下,在Eclipses中建立一個java工程,然後在src上右鍵--NEW---Other---Web Service Client --Xfire--在WsdL url 中寫上http://localhost:8080/Example/services/HelloWorldService?wsdl-----下一步結束。
在src里的會出現一些java文件,你找一個以Client結束的java文件,在裡面的main方法中會有個service對象,現在你就可以直接用這個對象了,service.peerstatus(參數)這樣寫就行了。
純手打啊,希望能對你有幫助。

⑽ c++如何與java進行交互 使用webservice形式。發我一個源碼吧。或者給我講一下其中的思路,以及使用的工具

使用JNI!不管什麼樣的應用都可以(如果是Android的話需要在Linux下),java中可以直接調用c中的方法,不需要其他工具,有eclipse和vc就可以,去了解一下,步驟也不難。

熱點內容
2021款es升級了哪些配置 發布:2024-03-28 21:26:44 瀏覽:384
下述調度演算法 發布:2024-03-28 21:22:24 瀏覽:616
捷達哪個配置裝有esp 發布:2024-03-28 21:17:41 瀏覽:196
天氣源碼 發布:2024-03-28 21:14:11 瀏覽:428
使命召喚紅魔浪潮如何配置 發布:2024-03-28 21:13:08 瀏覽:546
nginx安裝php 發布:2024-03-28 21:09:47 瀏覽:667
利用python進行數據分析pdf 發布:2024-03-28 20:33:36 瀏覽:560
php模擬post提交 發布:2024-03-28 20:23:14 瀏覽:542
phptxt下載 發布:2024-03-28 20:12:37 瀏覽:476
如何更衣櫃密碼鎖密碼設置 發布:2024-03-28 19:42:09 瀏覽:484