當前位置:首頁 » 網頁前端 » webservice開源
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

webservice開源

發布時間: 2022-09-22 00:17:58

Ⅰ webservice和bbo service的區別

他倆其實沒什麼大區別,只不過bbo可以和Spring框架無縫集成。

Ⅱ WebService和Webapi的區別

Web Service特徵
1、它是基於SOAP協議的,數據格式是XML
2、只支持HTTP協議
3、它不是開源的,但可以被任意一個了解XML的人使用
4、它只能部署在IIS上
Web API特徵(紅色標記與WebService區別)
1、這是一個簡單的構建HTTP服務的新框架
2、在.net平台上Web API 是一個開源的、理想的、構建REST-ful 服務的技術
3、不像WCF REST Service.它可以使用HTTP的全部特點(比如URIs、request/response頭,緩存,版本控制,多種內容格式)
4、它也支持MVC的特徵,像路由、控制器、action、filter、模型綁定、控制反轉(IOC)或依賴注入(DI),單元測試。這些可以使程序更簡單、更健壯
5、它可以部署在應用程序和IIS上
6、這是一個輕量級的框架,並且對限制帶寬的設備,比如智能手機等支持的很好
7、Response可以被Web API的MediaTypeFormatter轉換成Json、XML 或者任何你想轉換的格式。
8、Web API非常適合構建移動客戶端服務
以下情況可以考慮用Web API
1、 需要Web Service但是不需要SOAP
2、 需要在已有的WCF服務基礎上建立non-soap-based http服務
3、 只想發布一些簡單的Http服務,不想使用相對復雜的WCF配置
4、 發布的服務可能會被帶寬受限的設備訪問
5、希望使用開源框架,關鍵時候可以自己調試或者自定義一下框架
6、如果服務需要在http協議上,並且希望利用http協議的各種功能
7、如果服務需要被各種客戶端(特別是移動客戶端)調用
小結(僅供參考)
總體來說,兩者都是服務,只是表現形式存在一些差異
webapi多用於基於http請求的服務應用,比如說移動服務端或者需要提供第三方API 服務的場景下
webservice也可以應用於webapi所在的場景,但是如果是我的選擇,我一般是做為內部服務的使用,好比如果一個系統我會用wcf/webservice作為內部子系統間的服務通信,而webapi用於外部服務的請求~

Ⅲ 什麼叫做基於cxf的webservice

Apache CXF是一個開源的Service框架,可以用於簡化用戶的service開發,基於CXF開發的應用可提供SOAP、XML/HTTP、RESTFUL HTTP或CORBA等服務。CXF底層頁可以使用不同的傳輸協議,包括HTTP、JMS或JBI等。

Ⅳ WebAPI 和 webservice的區別

1、它是基於SOAP協議的,數據格式是XML
2、只支持HTTP協議
3、它不是開源的,但可以被任意一個了解XML的人使用
4、它只能部署在IIS上
Web API:
1、這是一個簡單的構建HTTP服務的新框架
2、在.net平台上Web API 是一個開源的、理想的、構建REST-ful 服務的技術
3、不像WCF REST Service.它可以使用HTTP的全部特點(比如URIs、request/response頭,緩存,版本控制,多種內容格式)
4、它也支持MVC的特徵,像路由、控制器、action、filter、模型綁定、控制反轉(IOC)或依賴注入(DI),單元測試。
5、它可以部署在應用程序和IIS上
6、這是一個輕量級的框架,並且對限制帶寬的設備,比如智能手機等支持的很好
7、Response可以被Web API的MediaTypeFormatter轉換成Json、XML 或者任何你想轉換的格式。

Ⅳ 如何選擇WebService框架JWS,Axis2,XFire,CXF,Spring WS

1、JWS是Java語言對WebService服務的一種實現,用來開發和發布服務。而從服務本身的角度來看JWS服務是沒有語言界限的。但是Java語言為Java開發者提供便捷發布和調用WebService服務的一種途徑。
Java SE 6封裝了JAX-WS(Java API for XML-Web Services),而JAX-WS同時支持基於SOAP的Web服務和REST風格的Web服務。JAX-WS通常可簡寫為JWS,當前,JWS的版本為2.x。
基於SOAP的Web服務可用單個Java類的實現,但是最好是用「介面+實現」的方式來實現最佳。

2、Axis2是Apache下的一個重量級WebService框架,准確說它是一個Web Services / SOAP / WSDL 的引擎,是WebService框架的集大成者,它能不但能製作和發布WebService,而且可以生成Java和其他語言版WebService客戶端和服務端代碼。這是它的優勢所在。但是,這也不可避免的導致了Axis2的復雜性,使用過的開發者都知道,它所依賴的包數量和大小都是很驚人的,打包部署發布都比較麻煩,不能很好的與現有應用整合為一體。但是如果你要開發Java之外別的語言客戶端,Axis2提供的豐富工具將是你不二的選擇。

3、XFire是一個高性能的WebService框架,在Java6之前,它的知名度甚至超過了Apache的Axis2,XFire的優點是開發方便,與現有的Web整合很好,可以融為一體,並且開發也很方便。但是對Java之外的語言,沒有提供相關的代碼工具。XFire後來被Apache收購了,原因是它太優秀了,收購後,隨著Java6 JWS的興起,開源的WebService引擎已經不再被看好,漸漸的都敗落了。

4、CXF是Apache旗下一個重磅的SOA簡易框架,它實現了ESB(企業服務匯流排)。CXF來自於XFire項目,經過改造後形成的,就像目前的Struts2來自WebWork一樣。可以看出XFire的命運會和WebWork的命運一樣,最終會淡出人們的視線。CXF不但是一個優秀的Web Services / SOAP / WSDL 引擎,也是一個不錯的ESB匯流排,為SOA的實施提供了一種選擇方案,當然他不是最好的,它僅僅實現了SOA架構的一部分。

基於以上的認識,我們可以得知,雖然有了Java6,但是我們還可以選擇Axis2、XFire、CXF等。我們不能指望有了Java6 JWS,就能異想天開去實施SOA。如果要與別的語言交互,也許我們還有賴於Axis2等等,當然這不是唯一選擇,僅僅是一種可供選擇的方案。
還有,目前很多企業的應用還是基於Java5的,而Java5的項目不會瞬間都升級到Java6,如果要在老項目上做擴展,我們還有賴於其他開源的WS引擎。

Ⅵ 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>

Ⅶ cs架構下的 webservice是怎麼通信的

webservice就是web服務,將功能以服務的方式發布出來,走xml通用soap協議,將你的功能發布成wsdl文件,其他程序就可以通過訪問地址soap協議來調用web服務的方法。bs下有很多webservice的實現,如xfire,axis等。cs的話一般都有封裝好的webservice控制項,使用控制項配置一下地址就可以了。

Ⅷ 使用jquery ajax 寫了客戶端post請求,有開源的webservice服務端嗎

是否可以設置一個參數,例如 val,參數值為json值,在webservice里獲取val的json值,轉換json值為Dictionary數組,再對Dictionary數組進行訪問