首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

XFire WebService 公布与调用

2012-09-02 
XFire WebService 发布与调用???????????????????????????????????????? 创建webservices服务?第一步?添加

XFire WebService 发布与调用

???????????????????????????????????????? 创建webservices服务

?

第一步

?

添加架包

?

第二步

?

web.xml文件添加过滤器

<filter>
??? ??? <filter-name>webservicefilter</filter-name>
??? ??? <filter-class>com.sungoal.webservice.WebserviceFilter</filter-class>
</filter>

<filter-mapping>
??? ??? <filter-name>webservicefilter</filter-name>
??? ??? <url-pattern>/services/*</url-pattern>

</filter-mapping>

?

?

第三步

?

添加services.xml文件,目录格式如下: /Caesar3_standard/src/META-INF/xfire/services.xml

XFire WebService 公布与调用

?

第四步

?

编写接口与实现类

?

第五步

?

在services.xml 文件中配置节点,程序发布的时候会读取这个文件生成发布内容

<beans>
??? <service xmlns="http://xfire.codehaus.org/config/1.0">
??? <name>ResultService</name>
??? <namespace>http://192.168.12.112/services/ResultService</namespace>
??? <serviceClass>com.sungoal.webservice.IResultService</serviceClass>
??? <implementationClass>com.sungoal.webservice.ResultService</implementationClass>
? </service>

</beans>

?

?

?

?

客户端

?

调用方法一

?

?

package com.sungoal.DeleteIndex;


import java.net.MalformedURLException;

import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;

public class test {

???
??? public static void main(String[] args) {
??? ??? String serviceUrl = "http://localhost//services/DeleteIndexService";
??? ??? Service serviceModel = new ObjectServiceFactory().create(I_DeleteIndexService.class, null, serviceUrl, null);
??? ??? XFireProxyFactory serviceFactory = new XFireProxyFactory();
??? ??? try {
??? ??? ??? I_DeleteIndexService service = (I_DeleteIndexService)serviceFactory.create(serviceModel,serviceUrl);
??? ??? ??? boolean is = service.deleteIndex("aaa","id", new String[]{"1"});
??? ??? ??? //System.out.println(is);
??? ??? ???
??? ??? } catch (MalformedURLException e) {
??? ??? ??? // TODO Auto-generated catch block
??? ??? ??? e.printStackTrace();
??? ??? }
??? ???
??? ???
??? }
???
}

?

(注:服务发布者需要复制 发布的接口类 给客户端调用方,不太方便)

?

调用方法二

?

package com.sungoal.DeleteIndex;

import java.net.MalformedURLException;
import java.rmi.RemoteException;

import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class test2 {
???
??? public static void main(String[] args) {
??? ??? String serviceURL = "http://localhost//services/DeleteIndexService";
??? ??? Service service = new Service();
??? ??? Call call;
??? ??? try {
??? ??? ???
??? ??? ??? call = (Call) service.createCall();
??? ??? ??? call.setTargetEndpointAddress(new java.net.URL(serviceURL));
??? ??? ??? call.setOperationName("deleteIndex");
??? ??? ??? Object is = call.invoke(new Object[]{"aaa","ddd_ss_ss",new String[]{"asas_sd_kjh","sdfsdf_sdd_sd"}});
??? ??? ???
??? ??? ??? //System.out.println(is);
??? ??? } catch (ServiceException e) {
??? ??? ??? e.printStackTrace();
??? ??? } catch (MalformedURLException e) {
??? ??? ??? e.printStackTrace();
??? ??? } catch (RemoteException e) {
??? ??? ??? // TODO Auto-generated catch block
??? ??? ??? e.printStackTrace();
??? ??? }
??? ???
??? ???
??? }

}

?

热点排行