jersery client调用REST框架web services服务的一个示例

这是最近项目中和第三方联调接口时遇到的一个问题。

第三方服务端:是使用jersery REST框架构建的web services服务,提供给我们的是wadl文件。他们是基于的是JDK1.6开发环境,jersery的版本也比较高,也是基于JDK1.6.

我方客户端:我们的现网环境是基于JDK1.5,所以要考虑基于JDK1.5环境进行开发测试。如果直接使用和他们一样版本的jersery客户端jar,基于他们提供的wadl文件生成客户端,基本上是半小时内将问题搞定,但那必须在jdk1.6环境下,

所以我们必须让他在jdk1.5环境下能跑,最后在网上找了低版本的jersery客户端jar,同时将jaxb相关的几个jar也替换成低版本的,自己写客户端调用,而不使用直接自动生成的客户端代码,将问题搞定。

 

客户端调用代码如下所示:

 

 

import javax.ws.rs.core.MediaType;
import net.sf.json.JSONObject;
。。。
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;

public class JzzService
{
    private static Client client = Client.create();
    private static Logger logger = Logger.getLogger(JzzService.class);

    /**
     * 外部认证
     */
    public static RespOutCertificate outCertificate(
        ReqOutCertificate reqOutCertificate)
    {
       
    	String url = "http://ip:port/services";
        WebResource webResource = client.resource(
            url).path(
            "outCertificate");
        JSONObject json = null;
        if(reqOutCertificate != null){
        	json = JSONObject.fromObject(reqOutCertificate);
        	logger.info("请求外部认证接口的参数为:" + json);
        }else
        	logger.info("外部认证请求对象为空");
        
        RespOutCertificate respOut = webResource.entity(reqOutCertificate,
            MediaType.APPLICATION_JSON).post(RespOutCertificate.class);
        	logger.info("外部认证返回结果:" + (respOut == null ? null : respOut.toString()));
        return respOut;
    }
。。。。。。。。。。。
}

 

 其中的请求对象和响应对应都加入@XmlRootElement注解,如下所示:

 

 

 

@XmlRootElement
public class ReqOutCertificate {
	private String cardasno;
	private String termno;
	private String radom1;
	private String skfactor;
	private String mac1facto;

        。。。。。
}

 附件lib.rar是使程序能在jdk1.5环境下能运行的lib,包含所有的jar包。这是关键。

附件lib_for_jdk5.rar是能在jdk1.5下运行的关键的几个jar包。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值