<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    分享java帶來的快樂

    我喜歡java新東西

    在spring中利用axis工具配置webservice成功案例

    第一步:確認你用到的spring bean存在并且有效 比如 inviteService
    第二步:創建要發布的服務方法

    /**
     *
     */
    package com.chinamobile.survey.webservice;

    import java.util.List;

    import org.springframework.remoting.jaxrpc.ServletEndpointSupport;

    import com.chinamobile.survey.entity.vo.ExamPlanContainer;
    import com.chinamobile.survey.invite.business.IInviteService;

    /**
     * @author jianqiang.jiang
     *
     */
    public class InviteEndPoint extends ServletEndpointSupport implements
      IInviteService {
     // 將真實的業務bean包裝成WebService

     private IInviteService inviteService;

     // 該方法由Spring調用,將目標業務bean注入。

     protected void onInit() {
      this.inviteService = (IInviteService) getWebApplicationContext()
        .getBean("inviteService");
     }

     // 將業務bean的業務方法暴露成WebService
     public int getAllowAnswerExamPlanCount(long userId) throws Exception {
      return inviteService.getAllowAnswerExamPlanCount(userId);
     }

     public ExamPlanContainer getAllowAnswerExamPlanContainer(long userId, long offset, long maxRow)
       throws Exception {
      return inviteService.getAllowAnswerExamPlanContainer(userId, offset, maxRow);
     }

     }
    注意里面的 ServletEndpointSupport 和對bean的引用

    第三步.編輯兩個文件
      1.web.xml中
      增加
      <!--  定義AxisServlet-->
     <servlet>
      <servlet-name>AxisServlet</servlet-name>
      <servlet-class>
       org.apache.axis.transport.http.AxisServlet
      </servlet-class>
     </servlet>
     <!--  映射AxisServlet,使用通配符-->
     <servlet-mapping>
      <servlet-name>AxisServlet</servlet-name>
      <url-pattern>/services/*</url-pattern>
     </servlet-mapping>
        2.生成server-config.wsdd,放在WEB-INF下
     

    <deployment xmlns="http://xml.apache.org/axis/wsdd/"
     xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
     <handler name="URLMapper"
      type="java:org.apache.axis.handlers.http.URLMapper" />
     <service name="ExamService" provider="java:RPC">
      <parameter name="className"
       value="com.chinamobile.survey.webservice.InviteEndPoint" />
      <parameter name="allowedMethods"
       value="getAllowAnswerExamPlanCount,getAllowAnswerExamPlanContainer" />
      <parameter name="allowedRoles" value="user1,user2" />
     </service>
     <transport name="http">
      <requestFlow>
       <handler type="URLMapper" />
      </requestFlow>
     </transport>
     <beanMapping qname="myNS:ExamPlanContainer"
      xmlns:myNS="urn:BeanService"
      languageSpecificType="java:com.chinamobile.survey.entity.vo.ExamPlanContainer" />
     <beanMapping qname="myNS:WsExamPlan" xmlns:myNS="urn:BeanService"
      languageSpecificType="java:com.chinamobile.survey.entity.vo.WsExamPlan" />

    </deployment>

    注意其中的 返回類型注冊,

    第四步.
    生成客戶端測試代碼:

    package com.chinamobile.survey.webservice;

    import java.util.Iterator;
    import java.util.List;

    import javax.xml.namespace.QName;
    import javax.xml.rpc.ParameterMode;

    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import org.apache.axis.encoding.XMLType;
    import org.apache.axis.encoding.ser.BeanDeserializerFactory;
    import org.apache.axis.encoding.ser.BeanSerializerFactory;

    import com.chinamobile.survey.entity.vo.ExamPlanContainer;
    import com.chinamobile.survey.entity.vo.WsExamPlan;

    public class ArchiveClient {

     public static void main(String args[]) throws Exception {

      try {
       String endpoint = "http://localhost:8080/exam/services/ExamService";
       Service service = new Service();
       Call call = (Call) service.createCall();

       QName searchresultqn = new QName("urn:BeanService",
         "ExamPlanContainer");
       Class searchresultcls = ExamPlanContainer.class;
       call
         .registerTypeMapping(searchresultcls, searchresultqn,
           new BeanSerializerFactory(searchresultcls,
             searchresultqn),
           new BeanDeserializerFactory(searchresultcls,
             searchresultqn));
       QName wsExamPlanQN = new QName("urn:BeanService", "WsExamPlan");
       Class wsepcls = WsExamPlan.class;
       call.registerTypeMapping(wsepcls, wsExamPlanQN,
         new BeanSerializerFactory(wsepcls, wsExamPlanQN),
         new BeanDeserializerFactory(wsepcls, wsExamPlanQN));

       call.setTargetEndpointAddress(new java.net.URL(endpoint));
       call.setOperationName(new QName("ExamService",
         "getAllowAnswerExamPlanContainer"));

       call.addParameter("userId", XMLType.XSD_LONG, ParameterMode.IN);
       call.addParameter("offset", XMLType.XSD_LONG, ParameterMode.IN);
       call.addParameter("maxRow", XMLType.XSD_LONG, ParameterMode.IN);

       call.setReturnType(searchresultqn);
       ExamPlanContainer result = (ExamPlanContainer) call
         .invoke(new Object[] { new Long(1), new Long(0),
           new Long(1000) });
       if (result != null) {
        List list = result.getExamPlanList();
        for (Iterator iter = list.iterator(); iter.hasNext();) {
         WsExamPlan wsExamPlan = (WsExamPlan) iter.next();
         System.out.println(wsExamPlan.getName());

        }

       }

      } catch (javax.xml.rpc.ServiceException e) {
       e.printStackTrace();
      } catch (java.net.MalformedURLException e) {
       e.printStackTrace();
      } catch (java.rmi.RemoteException e) {
       e.printStackTrace();
      }
     }

     public static void testCount() {
      try {
       String endpoint = "http://localhost:8080/exam/services/ExamService";
       Service service = new Service();
       Call call = (Call) service.createCall();

       call.setTargetEndpointAddress(new java.net.URL(endpoint));
       call.setOperationName(new QName("ExamService",
         "getAllowAnswerExamPlanCount"));

       call.addParameter("userId", XMLType.XSD_LONG, ParameterMode.IN);
       call.setReturnType(XMLType.XSD_INT);
       Integer result = (Integer) call
         .invoke(new Object[] { new Long(1) });
       System.out.println(result);
      } catch (javax.xml.rpc.ServiceException e) {
       e.printStackTrace();
      } catch (java.net.MalformedURLException e) {
       e.printStackTrace();
      } catch (java.rmi.RemoteException e) {
       e.printStackTrace();
      }
     }
    }

    第五步:get方式訪問測試
     http://localhost:8080/exam/services/ExamService?method=getAllowAnswerExamPlanContainer&paramter0=1&paramter1=1&paramter2=1

       

    posted on 2009-02-24 00:32 強強 閱讀(1082) 評論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 羞羞视频在线免费观看| 亚洲国产高清美女在线观看| 疯狂做受xxxx高潮视频免费| 青青青免费国产在线视频小草| 亚洲一区二区中文| 免费无遮挡无码永久视频| 亚洲VA中文字幕无码一二三区| 国产一级在线免费观看| 亚洲精品无码乱码成人| 七色永久性tv网站免费看| 亚洲妇熟XXXX妇色黄| 91精品国产免费网站| 亚洲a级成人片在线观看| 日本特黄特色免费大片| 婷婷亚洲综合五月天小说在线| 免费播放春色aⅴ视频| 国产精品小视频免费无限app| 精品国产_亚洲人成在线高清| 亚洲免费视频网站| 亚洲AV无码一区二区三区在线 | 毛片免费在线观看| 亚洲高清美女一区二区三区| 免费观看激色视频网站(性色)| 亚洲а∨精品天堂在线| 免费又黄又爽的视频| 中文精品人人永久免费 | 日韩在线看片免费人成视频播放| 亚洲AV无码国产一区二区三区| 亚洲中文字幕成人在线| 亚洲精品免费观看| 蜜芽亚洲av无码一区二区三区| 久久久久亚洲精品无码网址| 亚洲午夜免费视频| 亚洲精品国产suv一区88| 国产亚洲高清不卡在线观看| 人与禽交免费网站视频| 青青青视频免费观看| 亚洲视频在线观看网站| 免费国产成人午夜私人影视| 日韩视频在线观看免费| 亚洲av无码一区二区三区人妖 |