標籤:import 瀏覽器 lis string str jdk org 訪問 add
摘要:webservice 不是一種新技術,它是一種跨平台,跨語言的規範,用於不同平台,不同語言開發應用之間的互動。
cxf:是java主流的WebService實現架構。
接下來開始 使用cxf開發WebService伺服器端介面
1.建立一個maven項目:
2. 項目用jdk1.7(因為1.7有webservice的預設實現)項目結構如:
3. 首先建立介面,HelloWorld.java:
package com.wh.webservice;import javax.jws.WebService;@WebServicepublic interface HelloWorld { public String say(String str);}
4. 然後建立實作類別,HelloWorldImpl.java:
package com.wh.webservice.impl;import javax.jws.WebService;import com.wh.webservice.HelloWorld;@WebServicepublic class HelloWorldImpl implements HelloWorld { public String say(String str) { return "Hello" + str; }}
5. 然後建立實作類別,Server.java:
package com.wh.webservice.impl;import org.apache.cxf.jaxws.JaxWsServerFactoryBean;import com.wh.webservice.HelloWorld;public class Server { public static void main(String[] args) { System.out.println("web service start"); HelloWorld implemetor =new HelloWorldImpl(); String address="http://192.168.1.111/helloWorld";//本機ip地址。 //jdk實現 暴露介面 //Endpoint.publish(address, implemetor); JaxWsServerFactoryBean factoryBean =new JaxWsServerFactoryBean(); //設定暴露介面: factoryBean.setAddress(address); factoryBean.setServiceClass(HelloWorld.class);//設定介面 factoryBean.setServiceBean(implemetor);//設定實作類別 factoryBean.create();//建立介面。 System.out.println("web service started"); }}
說明:紅色標識部分:Endpoint是jdk自身實現的webService,不需要用到CXF的任何東西。
所以,去除橘紅色代碼,Server,就可以直接運行了。
我們在瀏覽器裡訪問:http://192.168.1.111/helloWorld?wsdl 出現xml代碼為正確。
橘紅色標識部分:是運用CXF來實現webservice介面。(需要依賴cxf的包)pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.wh.webservice</groupId> <artifactId>WS_Server</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <!-- cxf 依賴包引入 --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>3.1.11</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-core</artifactId> <version>3.1.11</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http-jetty</artifactId> <version>3.1.11</version> </dependency> </dependencies></project>
這樣就 ok 了,運行方法和以上一樣。
webservice 之 使用cxf開發WebService伺服器端介面