zoukankan      html  css  js  c++  java
  • 在 web project 中的 jsp 程序中 使用 Web Service

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

     2.要导入的包
           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.数据发布端
     (1)编写发布接口
     package cn.test.service;

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

     (2)编写实现类
     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>     <!-- 这个名字比较重要,调用时用的就是它 -->
      <namespace>http://localhost/ADService</namespace>//使用这个地址访问
      <serviceClass>cn.test.service.ADService</serviceClass>
      <implementationClass>
       cn.test.service.impl.ADServiceImpl //实现的类
      </implementationClass>
      <!-- 这个东西是一个修饰器 貌似调用了SPRING的整合有关 加了会报一个错误
      <inHandlers>
       <handler
        handlerClass="org.codehaus.xfire.demo.handlers.CheckVersionHandler" />
      </inHandlers>
      -->
     </service>
        </beans>
       
     5.配置web.xml
        在web.xml中加入:
             <servlet>
      <servlet-name>XFireServlet</servlet-name> //使用内置的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.测试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);       //注意,此处用的接口是发布端的接口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);  //通过类名和地址来达到类的实例
          } 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());
          }      
         
          //将所有的数据逐个打印出来
          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.写一个JSP调用客户端
     <%@ 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>

  • 相关阅读:
    Oracle简述
    如何用jQuery实现五星好评
    Java中的集合概述
    js关卡函数,throat函数实现,定时运行函数
    js图的数据结构处理----普里姆算法
    js图的数据结构处理---弗洛伊德算法
    js图的数据结构处理---迪杰斯特拉算法
    js图的数据结构处理----邻链表,广度优先搜索,最小路径,深度优先搜索,探索时间拓扑
    js树形结构-----(BST)二叉树增删查
    js模拟散列
  • 原文地址:https://www.cnblogs.com/cy163/p/1413606.html
Copyright © 2011-2022 走看看