日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

cxf webservice 完整例子

 靜謐的知識(shí)園林 2012-08-01

在開發(fā)java webservice時(shí),有兩個(gè)比較流行的框架:axis2和cxf。cxf可以無(wú)縫的和spring集成,而axis2需要打包成aar文件,在tomcat下面跑。于是我們選擇了cxf開發(fā)webservice。

下面一步步的介紹用cxf開發(fā)服務(wù)端和客戶端的例子。

首先開發(fā)服務(wù)端:

一:在pom.xml文件中加入依賴:

  <dependency>
   <groupId>org.apache.cxf</groupId>
   <artifactId>cxf-api</artifactId>
   <version>2.5.0</version>
  </dependency>
  <dependency>
   <groupId>org.apache.cxf</groupId>
   <artifactId>cxf-rt-frontend-jaxws</artifactId>
   <version>2.5.0</version>
  </dependency>
  <dependency>
   <groupId>org.apache.cxf</groupId>
   <artifactId>cxf-rt-bindings-soap</artifactId>
   <version>2.5.0</version>
  </dependency>
  <dependency>
   <groupId>org.apache.cxf</groupId>
   <artifactId>cxf-rt-transports-http</artifactId>
   <version>2.5.0</version>
  </dependency>
  <dependency>
   <groupId>org.apache.cxf</groupId>
   <artifactId>cxf-rt-ws-security</artifactId>
   <version>2.5.0</version>
  </dependency>

然后會(huì)在maven dependencies文件夾中看到引用的jar包

二:開發(fā)服務(wù)的接口類和實(shí)現(xiàn)類

首先接口類:

package com.mycompany.webservice.server;

import javax.jws.WebService;

@WebService
public interface Greeting {
   public String greeting(String userName);
}

然后實(shí)現(xiàn)類:

package com.mycompany.webservice.server;

import java.util.Calendar;
import javax.jws.WebService;

@WebService(endpointInterface = "com.mycompany.webservice.server.Greeting")
public class GreetingServiceImpl implements Greeting {

 public String greeting(String userName) {
  return "Hello " + userName + ", currentTime is "
    + Calendar.getInstance().getTime();
 }
}

服務(wù)端的代碼開發(fā)就到此了。下面要配置文件。

在application.xml中:

添加

<!--=============== 實(shí)現(xiàn)類的bean,需要spring注入 ============================-->

<bean id="greetingServiceImpl" class="com.mycompany.webservice.server.GreetingServiceImpl"/>
 <jaxws:endpoint id="greetingService"  implementor="#greetingServiceImpl"   address="/Greeting" />

在web.xml中:

添加

 <servlet> 
        <servlet-name>CXFServlet</servlet-name> 
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> 
        <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
        <servlet-name>CXFServlet</servlet-name>  

<!--==這個(gè)設(shè)置很重要,那么我們的webservice的地址就是http://localhost:8080/yourProgramName/webservice/Greeting===-->
        <url-pattern>/webservice/*</url-pattern> 
    </servlet-mapping>

好了。到此我們的服務(wù)端就開發(fā)好了。。

就可以通過http://localhost:8080/yourProgramName/webservice/Greeting?wsdl 訪問看到我們的wsdl了。

下面開發(fā)我們的客戶端,來(lái)調(diào)用上面的服務(wù)。

package com.mycompany.webservice.client;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;


public class GreetingServiceClient {
 public static void main(String[] args) {
  //創(chuàng)建WebService客戶端代理工廠
  JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
  //注冊(cè)WebService接口
  factory.setServiceClass(Greeting.class);
  //設(shè)置WebService地址
  factory.setAddress("http://localhost:8080/yourProgramName/webservice/Greeting");
  Greeting greetingService = (Greeting)factory.create();
  System.out.println("invoke webservice...");
  System.out.println("message context is:"+greetingService.greeting("gary"));  
 }
}

好了客戶端也開發(fā)完成。

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多