Java學(xué)習(xí)

          java,spring,structs,hibernate,jsf,ireport,jfreechart,jasperreport,tomcat,jboss -----本博客已經(jīng)搬家了,新的地址是 http://www.javaly.cn 如果有對(duì)文章有任何疑問或者有任何不懂的地方,歡迎到www.javaly.cn (Java樂園)指出,我會(huì)盡力幫助解決。一起進(jìn)步

           

          在 web project 中的 jsp 程序中 使用 Web Service

          新建WEB工程 testservice
           目錄如下:
           cn--test--service--impl

           2.要導(dǎo)入的包
                 activation-1.0.2.jar
               commons-codec-1.3.jar
               commons-httpclient-3.0.jar
               commons-logging-1.0.4.jar
               jaxen-1.1-beta-8.jar
               jdom-1.0.jar
               log4j-1.2.x.jar
               mail-1.3.3_01.jar
               spring-1.2.x.jar
               stax-api-1.0.jar
               wsdl4j-1.5.2.jar
               wstx-asl-2.9.jar
               xbean-2.1.0.jar
               xbean-spring-2.2.jar
               xfire-all-1.0.jar
               XmlSchema-1.0.jar


           3.數(shù)據(jù)發(fā)布端
           (1)編寫發(fā)布接口
           package cn.test.service;

           public interface ADService {
            String[][] getDatas();
           }

           (2)編寫實(shí)現(xiàn)類
           package cn.test.service.impl;

           import cn.test.service.ADService;

           public class ADServiceImpl implements ADService{

            public String[][] getDatas() {
             
             String ads[][] = new String[3][3];
             
             for(int i=0;i<3;i++){
              for(int j=0;j<3;j++){
               ads[i][j] = String.valueOf(i * j);
              }
             }
             return ads;
            }

           }
           
            4.增加xfire的配置文件services.xml
              在src目錄中加入/src/META-INF/xfire/services.xml
              <beans xmlns="http://xfire.codehaus.org/config/1.0">
           <service>
            <name>AD</name>     <!-- 這個(gè)名字比較重要,調(diào)用時(shí)用的就是它 -->
            <namespace>http://localhost/ADService</namespace>//使用這個(gè)地址訪問
            <serviceClass>cn.test.service.ADService</serviceClass>
            <implementationClass>
             cn.test.service.impl.ADServiceImpl //實(shí)現(xiàn)的類
            </implementationClass>
            <!-- 這個(gè)東西是一個(gè)修飾器 貌似調(diào)用了SPRING的整合有關(guān) 加了會(huì)報(bào)一個(gè)錯(cuò)誤
            <inHandlers>
             <handler
              handlerClass="org.codehaus.xfire.demo.handlers.CheckVersionHandler" />
            </inHandlers>
            -->
           </service>
              </beans>
             
           5.配置web.xml
              在web.xml中加入:
                   <servlet>
            <servlet-name>XFireServlet</servlet-name> //使用內(nèi)置的Servlet
            <display-name>XFire Servlet</display-name>
            <servlet-class>
             org.codehaus.xfire.transport.http.XFireConfigurableServlet
            </servlet-class>
           </servlet>
           <servlet-mapping>
            <servlet-name>XFireServlet</servlet-name>
            <url-pattern>/services/*</url-pattern>  //過濾的路徑
           </servlet-mapping>

           

           6.測(cè)試xfire是否部署成功
           http://localhost/testservice/services/AD?wsdl


           7.編寫客戶端
           package cn.test.service;

           import java.net.MalformedURLException;
           import org.codehaus.xfire.XFire;
           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 CallService {
            public String[][] getData(){
                Service serviceModel = new ObjectServiceFactory().create(ADService.class);       //注意,此處用的接口是發(fā)布端的接口ADService.class
              
                XFire xfire = XFireFactory.newInstance().getXFire();
                XFireProxyFactory factory = new XFireProxyFactory(xfire);    
              
                String serviceUrl = "http://localhost/testservice/services/AD";
                  
                ADService client = null;
                try {
                client = (ADService) factory.create(serviceModel, serviceUrl);  //通過類名和地址來(lái)達(dá)到類的實(shí)例
                } catch (MalformedURLException e) {
               System.out.println("WsClient.callWebService(): EXCEPTION: " + e.toString());
                }  
                  
               
                String[][] datas = null ;
                try {
             datas = client.getDatas();
                } catch (Exception e){
             System.out.println("WsClient.callWebService(): EXCEPTION: " + e.toString());
                }      
               
                //將所有的數(shù)據(jù)逐個(gè)打印出來(lái)
                int len = datas.length;
                for(int i=0;i<len;i++){
             int len2 = datas[i].length;
             for(int j=0;j<len2;j++){
              System.out.print("\t"+datas[i][j]);
             }
             System.out.println();
                }

                return datas;
            }
           }

            8.寫一個(gè)JSP調(diào)用客戶端
           <%@ page language="java" import="java.util.*,cn.yicha.service.*" pageEncoding="utf-8"%>
           
           <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
           <html>
             <head>
               <title>My JSP 'index.jsp' starting page</title> 
             </head> 
             <body>
            webservice test!
              
               <%
            CallService cs = new CallService();
            cs.getData();
              
                %>
             </body>
           </html>

          posted on 2009-04-03 16:43 找個(gè)美女做老婆 閱讀(353) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          本blog已經(jīng)搬到新家了, 新家:www.javaly.cn
           http://www.javaly.cn

          常用鏈接

          留言簿(6)

          隨筆檔案

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 怀柔区| 河间市| 镇原县| 革吉县| 咸丰县| 靖西县| 璧山县| 策勒县| 新余市| 漯河市| 北票市| 铜梁县| 墨玉县| 秀山| 舞阳县| 郑州市| 周口市| 曲麻莱县| 镇沅| 章丘市| 岳阳市| 平利县| 阿勒泰市| 赤峰市| 二连浩特市| 剑河县| 边坝县| 镇巴县| 荥经县| 高淳县| 余江县| 古交市| 边坝县| 靖宇县| 历史| 丘北县| 通化县| 湘潭市| 清水县| 石泉县| 沧源|