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

          webservice——SOAP簡單開發

          Posted on 2006-09-18 15:06 小小涼粉 閱讀(370) 評論(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!");
          ??? }
          主站蜘蛛池模板: 错那县| 醴陵市| 武鸣县| 乐至县| 和龙市| 阳山县| 牟定县| 香港 | 洛阳市| 扎赉特旗| 阜南县| 丰台区| 荔波县| 马鞍山市| 西乌珠穆沁旗| 陆川县| 土默特右旗| 碌曲县| 安阳县| 咸阳市| 明光市| 盐亭县| 布尔津县| 海盐县| 瑞昌市| 中卫市| 乐东| 东港市| 白城市| 长岭县| 南靖县| 微山县| 德兴市| 浮梁县| 弋阳县| 海盐县| 鸡西市| 岢岚县| 西宁市| 仁怀市| 宁国市|