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

java寫webservice

發布時間:2023-01-31 00:12:53

㈠ 如何在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」就可以了。
啟動成功

㈡ java Webservice都有哪幾種方式啊,哪種方式比較好啊

webservice的應用已經越來越廣泛了,下面介紹幾種在Java體系中開發webservice的方式,相當於做個記錄。
1.Axis2
Axis是apache下一個開源的webservice開發組件,出現的算是比較早了,也比較成熟。這里主要介紹Axis+eclipse開發webservice,當然不用eclipse也可以開發和發布webservice,只是用eclipse會比較方便。

(1)下載eclipse的Java EE版本

(2)下載axis2

(3)下載eclipse的axis2插件
Axis2_Codegen_Wizard
Axis2_Service_Archiver

推薦使用1.3的版本

(4)eclipse安裝axis2插件
1)在任意目錄下新建一個Axis2文件夾,在該文件夾下新建eclipse目錄,在eclipse目錄中新建plugins目錄和features目錄,例如:D:\programSoftware\eclipse-SVN\Axis2\eclipse;
2)把下載的axis2插件解壓,並把解壓的文件放到新建的eclipse的plugins目錄下;
3)在%eclipse_home%的目錄下新建links目錄,並在links目錄下新建axis2.link文件,內容為:path=D:\programSoftware\eclipse-SVN\Axis2;
4)重啟eclipse,點擊·file-new-other,如果看到Axis2 Wizards,則表明插件安裝成功。

(5)安裝axis2

(6)使用eclipse新建web工程,創建一個普通java類,至少包含一個方法。

(7)發布webservice
1)點擊eclipse的File-New-other,打開Axis2 Wizards,選擇Axis2 Service Archiver,然後Next;
2)選擇Class File Location,也就是類文件存放路徑,注意:只選到classes目錄,不要包括包文件夾,然後Next;
3)選擇Skip WSDL,然後Next
4)一路Next到Select the Service XML file to be included in the Service archive,勾選Generate theservice xml automatically;
5)Service Name-填寫你的service名稱,Class Name-填寫類名稱,要包括包名,然後點擊load,然後點擊Finish,這時webservice就發布成功了;
6)然後到%TOMCAT_HOME%/webapps/axis2/WEB-INF/services 看看是否多了一個.aar的文件;

注意:以上的方式是發布到axis2.war包中,你也可以把生成.aar文件到你的實際應用中,同時,你也可以使用eclipse的create webservice功能發布你的webservice,選擇axis2生成你的webservice,這樣webservice就會部署到你的應用中了。

2.Apche CXF
CXF開發webservice也是比較方便和簡單的,它和spring的集成可以說是非常地好。舉一個CXF開發webservice的例子吧。
1)在eclipse中新建一個web工程,導入依賴包,如圖:

2)編寫一個介面,如:

注意:CXF開發的webservice,介面中的方法的參數一定要以這種方式,否則客戶端調用的時候CXF服務端會接收不到參數的值,name:參數名稱,可不寫(建議寫上),targetNamespace:命名空間,一定要填寫上,默認是包名反過來的順序,mode:參數類型,IN表示輸入。
3)編寫一個實現類,實現介面的方法;
4)和spring的集成,編寫一個bean文件,如:cxf-beans.xml,內容如下:

Cxf-beans.xml代碼
<?xml version="1.0" encoding="UTF-8" ?>

<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

<jaxws:endpoint id="vote" implementor="com.zcl.cxf.service.VoteImpl" address="/Vote" />
</beans>
這個文件比較容易理解,就不解釋了。
5)配置CXFServlet
在web.xml文件中配置CXFServlet,載入cxf-beans.xml文件,內容如下:

Web.xml代碼

id="WebApp_ID" version="2.5">

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/cxf-beans.xml</param-value>
</context-param>

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
<servlet-name>cxf</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>cxf</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
把工程部署到中間件,如tomcat,就可以訪問該webservice了。

3.JDK開發webservice
1)編寫一個Java類,如下:

Jdkwebservice.java代碼
package demo;

import javax.jws.WebParam;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;

@WebService
public class JdkWebService {

return "Just do it," + value + "!";
}

public static void main(String[] args) {

}
}
2)運行該java類,在瀏覽器上就可以訪問該webservice了。
注意:開發web工程的時候,這種方法不太友好。我們可以編寫一個servlet類,在servlet類的初始化方法中發布webservice,這樣我們的中間件伺服器啟動的時候就會幫我們自動webservice了。

4) xfire
開發WebService的框架不少,每個框架都有各自的有點,最近我用xfire練習開發WebService,下面是開發WebService的小例子,希望對入門的人有些小幫助
1.新建一個java web project命名為TestWebService,將xfire相關的jar包添加到lib目錄中,寫介面類和實現類

Java代碼
package com.lamp.service;

public interface MessageService {
public String getName(String name);
}
[java] view plainprint?
package com.lamp.service;

public interface MessageService {
public String getName(String name);
}

實現類

Java代碼
package com.lamp.service.impl;

import com.lamp.service.MessageService;

public class MessageServiceImpl implements MessageService {

public String getName(String name) {
return "hellow " + name + ", welcome to WebService world";
}

}
[java] view plainprint?
package com.lamp.service.impl;

import com.lamp.service.MessageService;

public class MessageServiceImpl implements MessageService {

public String getName(String name) {
return "hellow " + name + ", welcome to WebService world";
}

}

在src目錄下新建文件夾META-INF,然後再在其下新建文件夾xfire,在xfire目錄下新建配置文件services.xml

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

<service>
<name>MessageService</name>
<serviceClass>com.lamp.service.MessageService</serviceClass>
<implementationClass>com.lamp.service.impl.MessageServiceImpl</implementationClass>
</service>
</beans>
[xml] view plainprint?
<?xml version="1.0" encoding="UTF-8"?>

<service>
<name>MessageService</name>
<serviceClass>com.lamp.service.MessageService</serviceClass>
<implementationClass>com.lamp.service.impl.MessageServiceImpl</implementationClass>
</service>
</beans>

最後在web.xml中配置xfire的servlet

Xml代碼
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>

</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
[xml] view plainprint?
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>

</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>

這樣伺服器端開發完畢,現在開始客戶端的開發
新建一個java project也將xfire相關的jar引入,我用ant在客戶端生成代理對象,在項目路徑下新建build.xml,代碼為

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

<project name="WebService" basedir="." default="gen-webservice">

<property file="build.properties">
</property>

<path id="project-classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
</path>

<target name="gen-webservice">
<taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="project-classpath" />

<wsgen outputDirectory="${src.dir}"
wsdl="${wsdl.dir}" package="com.lamp.ws.client" overwrite="true"/>

</target>

</project>
[xml] view plainprint?
<?xml version="1.0" encoding="UTF-8"?>

<project name="WebService" basedir="." default="gen-webservice">

<property file="build.properties">
</property>

<path id="project-classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
</path>

<target name="gen-webservice">
<taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="project-classpath" />

<wsgen outputDirectory="${src.dir}"
wsdl="${wsdl.dir}" package="com.lamp.ws.client" overwrite="true"/>

</target>

</project>

㈢ 用java怎麼寫webservice

Web Services以XML作為數據交換的標准格式,它是跨平台的應用,允許以任何方式創建Web Services,在.NET、Java平台上訪問。
在Java平台創建和訪問Web Service多通過Axis完成。Axis本質上就是一個SOAP引擎,提供創建伺服器端、客戶端和網關SOAP操作的基本框架。Axis目前版本是為Java編寫的。在使用Axis訪問Web Service時,需要引入以下包(10個):axis-ant.jar、axis.jar、commons-discovery-0.2.jar、commons-logging-1.0.4.jar、jaxrpc.jar、log4j-1.2.8.jar、saaj.jar、wsdl4j-1.5.1.jar、activation-1.1.jar和mail-1.4.jar。
(1)訪問Java創建的Web Service
在當前Java客戶端應用中添加相應的10個Axis包,編寫客戶端程序:
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class Test {
public static void main(String[] args) throws Exception {
try{
String endpoint = "http://localhost:8080/MyService/services/Hello";
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName("getHello");
String res = (String) call.invoke(new Object[]{});
System.out.println(res);
}
catch (Exception ex){
ex.printStackTrace();
}
}
}
其中兩處代碼加粗,第一處表示引用Java Web Service的URL,第二處表示公共的方法名稱。

㈣ 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的Web Service

伺服器端的操作:
1. 創建一個WebService項目。(不需要是Java EE 5.0)

2. 創建包與介面以及實現類。

3. 加上WebService的包

4. 編輯配置文件

5. 部署後在瀏覽器中測試:http localhost:8080/testWebService/services, 格式是固定的,中間換成項目名即可!

至此,伺服器端已完成!以下做的是客戶端的調用。
1. 創建客戶端項目

2.將伺服器端的包復制到客戶端(注意,實現類要去掉)

3. 加入WebService包

4. 在Next時, 注意將紅框中的勾打上。

6. 在包中創建一個類測試調用外部的WebService是否成功!(注意取地址時應加上webservice的名稱)
package com.yenange.service;
import java.net.MalformedURLException;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
public class TestWS {
public static void main(String[] args) {
//1.取得WebService的路徑
String url="http /localhost:8080/testWebService/services/testWebService";
//2.創建服務
Service service=new ObjectServiceFactory().create(IMyWebService.class);
//3.創建服務代理
XFireProxyFactory factory=new XFireProxyFactory(XFireFactory.newInstance().getXFire());
//4.調用外部的WebService, 建立對象. 再測試其方法
try {
IMyWebService obj=(IMyWebService)factory.create(service,url);
System.out.println(obj.HelloWorld("leaf"));
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
至此,java的WebService調用完成!

㈥ java如何寫webservice服務端

Java 中的 Web Service 分為基於 SOAP 的和基於 REST 的兩種,下面簡單說一個基於 SOAP 的例子。要使用 JDK6u4 之後的版本才能編譯通過。

先編寫一個 Web Service 的介面:

@WebService
@SOAPBinding(style=Style.RPC)
publicinterfaceTimeServer{
@();
@WebMethodlonggetTimeAsElapsed();
}

再編寫 Web Service 實現:

importjava.util.Date;
importjavax.jws.WebService;
@WebService(endpointInterface="test.TimeServer")
{
publicStringgetTimeAsString(){returnnewDate().toString();}
publiclonggetTimeAsElapsed(){returnnewDate().getTime();}
}

最後啟動 Web Service:

{
publicstaticvoidmain(String[]args){
Endpoint.publish("http://127.0.0.1:9876/ts",newTimeServerImpl());
}
}


如果正常啟動,可以用瀏覽器訪問 http://127.0.0.1:9876/ts?wsdl 看到這個 Web Service 的 wsdl 文檔。

閱讀全文

與java寫webservice相關的資料

熱點內容
考駕照怎麼找伺服器 瀏覽:882
阿里雲伺服器如何更換地區 瀏覽:970
手機app調音器怎麼調古箏 瀏覽:501
銳起無盤系統在伺服器上需要設置什麼嗎 瀏覽:17
紅旗計程車app怎麼應聘 瀏覽:978
如何編寫linux程序 瀏覽:870
吉利車解壓 瀏覽:248
java輸入流字元串 瀏覽:341
安卓軟體沒網怎麼回事 瀏覽:785
dvd壓縮碟怎麼導出電腦 瀏覽:274
冒險島什麼伺服器好玩 瀏覽:541
如何在伺服器上做性能測試 瀏覽:793
命令序列錯 瀏覽:259
javaif的條件表達式 瀏覽:576
手機app上傳的照片怎麼找 瀏覽:531
雲伺服器面臨哪些威脅 瀏覽:748
c語言各種編譯特點 瀏覽:177
路由器多種加密方法 瀏覽:604
程序員阻止電腦自動彈出定位 瀏覽:168
如何做伺服器服務商 瀏覽:763