專案引入XFire1.2.6 來實現webservice的基本功能

xz43發表於2011-07-14
專案中原就已有Axis框架,後便於和第三方提供的web service介面進行對接,引入了他們推薦的XFire框架,整了老半天才搞好,記錄一下。
 
剛開始就是一個個jar包去網上找,不停的嘗試啟動應用,不停的報錯,然後再根據錯誤,去找原因,再去找其他jar包,發現,這種效率實在太低。刪除原有的jar,直接下載xfire-distribution-1.2.6.zip,把裡面的lib目錄下的jar,全部拷到專案下,終於可以成功釋出helloworld例項了。為了儘量減少專案中無用的jar包,後來一個個jar刪除,啟動,看效果,採用這種笨拙的方式,發現就這五個必須都有,否則就會報錯了。
commons-httpclient-3.0.jar
jdom-1.0.jar
jsr173_api-1.0.jar
wstx-asl-3.2.0.jar
xfire-all-1.2.6.jar
其中第一個“commons-httpclient-3.0.jar”在HelloWorld中是不需要的,但真正使用xfire呼叫第三方介面,就需要這個jar。沒有“wstx-asl-3.2.0.jar”這個jar,啟動不報錯,但開啟連線“” 就會報錯。
 
其他地方配置很簡單。
首先web.xml中,在

  contextConfigLocation
  
     。。。
     /WEB-INF/classes/xfire-servlet.xml
  
 
  。。。
 
    XFireServlet
    
      org.codehaus.xfire.spring.XFireSpringServlet
    

  
  。。。
 
    XFireServlet
    /servlet/XFireServlet/*
  

  
    XFireServlet
    /services/*
  
 
其中xfire-servlet.xml 內容如下:


 <!-- 引入XFire預配置資訊 --&gt
 
   class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  
   
    
     
    

   

  

 

 <!-- 使用XFire匯出器 --&gt
   class="org.codehaus.xfire.spring.remoting.XFireExporter"
  lazy-init="false" abstract="true">
  <!-- 引用xfire.xml中定義的工廠 --&gt
  
  <!-- 引用xfire.xml中的xfire例項 --&gt
  
 

 <!-- 定義HelloWorld服務 --&gt
 
  <!-- 業務服務bean --&gt
  
  <!-- 業務服務bean的窄介面類 --&gt
  
 

 
在spring的application.xml配置檔案中,增加一個javabean定義:
 
 
HelloWorld 介面
 
package webservice;
public interface HelloWorld {
 public String sayHello(String name);
}
HelloWorldBean 實現類
 
package webservice;
public class HelloWorldBean implements HelloWorld {
 public String sayHello(String name) {  
  return "Hello"+name;
 }
}
 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-702206/,如需轉載,請註明出處,否則將追究法律責任。

相關文章