posts - 28, comments - 27, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          webservice——SOAP簡單開發

          Posted on 2006-09-18 15:06 小小涼粉 閱讀(374) 評論(0)  編輯  收藏 所屬分類: JavaEE
          首先下載soap,把soap.war放到tomcat/webapp/目錄下,在classpath下面加入soap.jar、mail.jar和 activation.jar,然后創建一個Service和Client,把Service.class放到 tomcat/webapp/soap/WEB-INF/classes目錄下,然后把mail.jar和activation.jar放到 tomcat/webapp/soap/WEB-INF/lib下面,并寫一個配置文件用于部署服務。

          <isd:service
          ?? xmlns:isd="http://xml.apache.org/xml-soap/deployment"
          ?? id="urn:service" checkMustUnderstands="true">
          ????? <isd:provider type="java" scope="Request" methods="setAlarm">
          ????? <isd:java class="work.Service" static="false"/>
          ?? </isd:provider>
          </isd:service>


          上面的work.Service是類的全名,setAlarm是提供的服務名,urn:service是URI。再寫一個腳本來調用配置文件部署服務

          java org.apache.soap.server.ServiceManagerClient
          http://localhost:8080/soap/servlet/rpcrouter deploy deploy.xml

          啟動Tomcat之后,啟動腳本,然后執行Client代碼就可以了,Client的主體代碼很簡單,代碼里面就不加入注釋了。
          ??
          ??? Call call = new Call ();
          ??? call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
          ??? call.setTargetObjectURI ("urn:service");
          ??? call.setMethodName ("setAlarm");
          ??? Parameter param = new Parameter("alarm", String.class, alarm, Constants.NS_URI_SOAP_ENC);
          ??? Vector paramList = new Vector();
          ??? paramList.addElement(param);
          ??? call.setParams (paramList);
          ??? URL url = new URL ("http://localhost:8080/soap/servlet/rpcrouter");
          ??? Response resp = call.invoke (url, "");
          ??? if (!resp.generatedFault()) {
          ????? // Extract Return value
          ????? Parameter result = resp.getReturnValue ();
          ????? String greeting = (String) result.getValue();
          ????? return greeting;
          ??? }
          ??? else {
          ????? //? Extract Fault Code and String
          ????? Fault f = resp.getFault();
          ????? String faultCode = f.getFaultCode();
          ????? String faultString = f.getFaultString();
          ????? System.err.println("Fault Occurred (details follow):");
          ????? System.err.println("Fault Code:? "+faultCode);
          ????? System.err.println("Fault String:? "+faultString);
          ????? return new String ("Fault Occurred.? No greeting for you!");
          ??? }
          主站蜘蛛池模板: 托克逊县| 车险| 修文县| 敦化市| 上林县| 霍林郭勒市| 大安市| 旅游| 自治县| 甘南县| 博兴县| 昌平区| 闵行区| 寿宁县| 自贡市| 巴青县| 华阴市| 扶风县| 阿拉尔市| 成都市| 安龙县| 桓台县| 宜春市| 东海县| 贡山| 曲麻莱县| 罗江县| 太原市| 肃南| 古蔺县| 东港市| 内丘县| 布拖县| 崇明县| 乐昌市| 子洲县| 镇坪县| 凌源市| 宿迁市| 嘉善县| 普陀区|