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!");
          ??? }
          主站蜘蛛池模板: 长春市| 新丰县| 如皋市| 绥棱县| 开鲁县| 营山县| 康保县| 桑植县| 神池县| 无棣县| 合作市| 屏东市| 法库县| 南安市| 婺源县| 神农架林区| 甘肃省| 隆德县| 阜康市| 游戏| 尼玛县| 荣成市| 德安县| 大丰市| 左权县| 西丰县| 乌兰县| 兴国县| 温泉县| 漯河市| 延安市| 峡江县| 海晏县| 绥芬河市| 清河县| 醴陵市| 武胜县| 堆龙德庆县| 桦甸市| 无为县| 孟津县|