本地接口:

@Override
    public Response formsubGet(String accountContent, char inputContent,
            String opEntrustWay, String opStation, String sysName,String sdkType,String comsFunc,String password,
            char passwordType) {
        return this.formsubPost(accountContent, inputContent, opEntrustWay, opStation,sysName,sdkType,comsFunc, password, passwordType);
    }

@Override
    public Response formsubPost(String accountContent, char inputContent,
            String opEntrustWay, String opStation, String sysName, String sdkType,String comsFunc,String password,
            char passwordType) {
        Response loginAuth = null;

本地实现类:
public class AuthLoginServerImpl implements AuthLoginServer
{
    private static final Logger logger = Logger.getLogger(AuthLoginServerImpl.class);
    
    private AuthLoginClient authLoginClient;

@Override
    public Response formsubGet(String accountContent, char inputContent,
            String opEntrustWay, String opStation, String sysName,String sdkType,String comsFunc,String password,
            char passwordType) {
        return this.formsubPost(accountContent, inputContent, opEntrustWay, opStation,sysName,sdkType,comsFunc, password, passwordType);
    }

@Override
    public Response formsubPost(String accountContent, char inputContent,
            String opEntrustWay, String opStation, String sysName, String sdkType,String comsFunc,String password,
            char passwordType) {
        Response loginAuth = null;
        try {
            loginAuth = authLoginClient.login(accountContent, inputContent, opEntrustWay, opStation, sysName,sdkType,comsFunc,password, passwordType);
        } catch (Exception e) {
             logger.info("调用login认证异常:"+ e.getMessage());
             loginAuth.setRetCode("-1");
             loginAuth.setRetMessage("login方法认证失败!");
        }
        return loginAuth;
    }

public void setAuthLoginClient(AuthLoginClient authLoginClient) {
        this.authLoginClient = authLoginClient;
    }
    
}

客户端类:
@Path("/mds")
@Produces("application/json;charset=UTF-8")
public interface AuthLoginClient
{
    @POST
    @Consumes({ MediaType.APPLICATION_FORM_URLENCODED + ";charset=UTF-8",
            MediaType.MULTIPART_FORM_DATA + ";charset=UTF-8" })
    @Path("/formsub.json")
    /*
     * F_OP_SRC首字母大写,无法将所有参数进行封装处理,因为对象属性是通过geter获取,结果得到的属性名为f_OP_SRC
     */
    public Response login(@FormParam("AccountContent") String accountContent, @FormParam("InputContent") char inputContent,
            @FormParam("OpEntrustWay") String opEntrustWay, @FormParam("OpStation") String opStation,
            @FormParam("sys_name") String sysName, @FormParam("sdk_type") String sdkType,
            @FormParam("coms_func") String comsFunc,@FormParam("Password") String password,
            @FormParam("PasswordType") char passwordType);
}

xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:jaxrs="http://cxf.apache.org/jaxrs" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
    http://cxf.apache.org/jaxrs
    http://cxf.apache.org/schemas/jaxrs.xsd">
    
    <!-- 资源文件配置 -->
    <bean id="propertiesBean"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <!-- 不需要加载log4j.properties -->
                <value>classpath:global.properties</value>
            </list>
        </property>
        <property name="fileEncoding">
            <value>UTF-8</value>
        </property>
    </bean>

<jaxrs:client id="authComClient"
        serviceClass="com.citics.esb.rest.client.AuthComClient"
        address="${url}">
        <jaxrs:features>
            <bean class="org.apache.cxf.feature.LoggingFeature" />
        </jaxrs:features>
        <jaxrs:providers>
            <bean class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
                <property name="dropRootElement" value="true" /><!--默认false-->
                <property name="supportUnwrapped" value="true" /><!--默认false-->
            </bean>
        </jaxrs:providers>
    </jaxrs:client>
    
    
    <jaxrs:server id="cutIdtiByPassServer" address="/identifications/jsonapi">
        <jaxrs:serviceBeans>
            <bean class="com.citics.esb.rest.server.impl.AuthComServerImpl">
                <property name="authComClient" ref="authComClient"></property>
            </bean>
        </jaxrs:serviceBeans>
        <jaxrs:features>
            <bean class="org.apache.cxf.feature.LoggingFeature" />
        </jaxrs:features>
        <jaxrs:providers>
            <bean class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
                <property name="ignoreNamespaces" value="true" />
                <property name="dropRootElement" value="false" />
            </bean>
        </jaxrs:providers>
    </jaxrs:server>

<jaxrs:client id="authLoginClient"
        serviceClass="com.citics.esb.rest.client.AuthLoginClient"
        address="${loginUrl}">
        <jaxrs:features>
            <bean class="org.apache.cxf.feature.LoggingFeature" />
        </jaxrs:features>
        <jaxrs:providers>
            <bean class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
                <property name="dropRootElement" value="true" /><!--默认false-->
                <property name="supportUnwrapped" value="true" /><!--默认false-->
            </bean>
        </jaxrs:providers>
    </jaxrs:client>
    
    <jaxrs:server id="formsubServer" address="/mds">
        <jaxrs:serviceBeans>
            <bean class="com.citics.esb.rest.server.impl.AuthLoginServerImpl">
                <property name="authLoginClient" ref="authLoginClient"></property>
            </bean>
        </jaxrs:serviceBeans>
        <jaxrs:features>
            <bean class="org.apache.cxf.feature.LoggingFeature" />
        </jaxrs:features>
        <jaxrs:providers>
            <bean class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
                <property name="ignoreNamespaces" value="true" />
                <property name="dropRootElement" value="false" />
            </bean>
        </jaxrs:providers>
    </jaxrs:server>
    
</beans>
返回的Response类:
@XmlRootElement(name = "Response")
@XmlAccessorType(XmlAccessType.NONE)
public class Response
{
    @XmlElement(name = "RET_CODE")
    private String retCode;
    
    @XmlElement(name = "RET_MESSAGE")
    private String retMessage;
    
    @XmlElement(name = "RESULTSET")
    private ResultSet resultSet;
    
    
    public String getRetCode()
    {
        return retCode;
    }
    
    
    public void setRetCode(String retCode)
    {
        this.retCode = retCode;
    }
    
    
    public String getRetMessage()
    {
        return retMessage;
    }
    
    
    public void setRetMessage(String retMessage)
    {
        this.retMessage = retMessage;
    }
    
    
    public ResultSet getResultSet()
    {
        return resultSet;
    }
    
    
    public void setResultSet(ResultSet resultSet)
    {
        this.resultSet = resultSet;
    }
    
}

@XmlAccessorType(XmlAccessType.FIELD)
public class ResultSet
{
    @XmlElement(name = "Account")
    private String account;
    
    @XmlElement(name = "BranchNo ")
    private String branchNo ;
    
    @XmlElement(name = "ClientID ")
    private String clientID ;
    
    @XmlElement(name = "SysnodeId")
    private int sysnodeId;
    
    public String getAccount() {
        return account;
    }
    public void setAccount(String account) {
        this.account = account;
    }
    public String getBranchNo() {
        return branchNo;
    }
    public void setBranchNo(String branchNo) {
        this.branchNo = branchNo;
    }
    public String getClientID() {
        return clientID;
    }
    public void setClientID(String clientID) {
        this.clientID = clientID;
    }
    public int getSysnodeId() {
        return sysnodeId;
    }
    public void setSysnodeId(int sysnodeId) {
        this.sysnodeId = sysnodeId;
    }
}

jax-rs的客户端完整实例的更多相关文章

  1. JAX-RS 2.0 REST客户端编程实例

    JAX-RS 2.0 REST客户端编程实例 2014/01/28 | 分类: 基础技术, 教程 | 0 条评论 | 标签: JAX-RS, RESTFUL 分享到:3 本文由 ImportNew - ...

  2. python测试mysql写入性能完整实例

    这篇文章主要介绍了python测试mysql写入性能完整实例,具有一定借鉴价值,需要的朋友可以参考下 本文主要研究的是python测试mysql写入性能,分享了一则完整代码,具体介绍如下. 测试环境: ...

  3. Netty实现SSL双向验证完整实例

    Netty实现SSL双向验证完整实例 博客分类: netty nettyssl自签证书  一.证书准备 要使用ssl双向验证,就必须先要生成服务端和客户端的证书,并相互添加信任,具体流程如下(本人调试 ...

  4. 【转】Android Https服务器端和客户端简单实例

    转载地址:http://blog.csdn.net/gf771115/article/details/7827233 AndroidHttps服务器端和客户端简单实例 工具介绍 Eclipse3.7 ...

  5. C# 调用第三方DLL完整实例

    C# 调用第三方DLL完整实例 分类: C/C++ 以下代码为本人在实际项目中编写的调用第三方DLL接口程序的完整代码. public class ExecuteDLL : Form { ...//忽 ...

  6. (转)多个mapreduce工作相互依赖处理方法完整实例(JobControl)

    多个mapreduce工作相互依赖处理方法完整实例(JobControl) 原文地址:http://mntms.iteye.com/blog/2096456?utm_source=tuicool&am ...

  7. 利用Div+CSS(嵌套+盒模型)布局页面完整实例流程

    Div+CSS(嵌套+盒模型)布局页面完整实例流程: <!DOCTYPE html><html> <head>  <meta charset="UT ...

  8. 微信小程序发送短信验证码完整实例

    微信小程序注册完整实例,发送短信验证码,带60秒倒计时功能,无需服务器端.效果图: 代码: index.wxml <!--index.wxml--> <view class=&quo ...

  9. Hadoop HDFS的shell(命令行客户端)操作实例

    HDFS的shell(命令行客户端)操作实例 3.2 常用命令参数介绍 -help 功能:输出这个命令参数手册 -ls                  功能:显示目录信息 示例: hadoop fs ...

随机推荐

  1. 基础dp

    队友的建议,让我去学一学kuangbin的基础dp,在这里小小的整理总结一下吧. 首先我感觉自己还远远不够称为一个dp选手,一是这些题目还远不够,二是定义状态的经验不足.不过这些题目让我在一定程度上加 ...

  2. MarkDown初遇

    MarkDown初遇 纠结盘桓许久,由于那只胖纸,最终决定再次捡起博客这个东东,记录记录生活中.心灵里的点点滴滴. 寻觅的过程中忽然发现MarkDown这个东东,查了查,学习成本不高,简洁而标准,关键 ...

  3. 关于ajax后台success传来json数据的问题

    最近在使用JQuery的ajax方法时,需要返回的数据为json数据,在success返回中数据处理会根据返回方式不同会采用不同的方式来生成json数据.在$.ajax方法中应该是如何来处理的,简单进 ...

  4. 在magento里把查询语句转换称sql语句

    在magento里把查询语句转换称sql语句 $order->getSelectsql(true); order为对象.

  5. 如何解决两个li之间的缝隙

    如何解决两个li之间的缝隙的问题: 在做一个类似按钮左右滑动的选择器的动效,遇到了个是关于li之间的缝隙的问题: HTML如下: <span class="c1mChanger&quo ...

  6. php 生成.txt文件

    $content =array('color'=> array('blue','red','green'),'size'=> array('small','medium','large') ...

  7. Django中使用ModelForm实现Admin功能

    接上一篇<Django中使用Bootstrap> ModelForm 可以将数据库中的信息展示在一个表中,因此我们在查询数据库信息时可以使用ModelForm在前端展示查询到的信息. 在上 ...

  8. MaskEdit组件的EditText属性和Text属性

    MaskEdit组件主要是EditMask属性 是string属性. 掩码字符串EditMask属性分为3个部分,分别用分号隔开,形式是“XXXXX;X;X” 第一部分是掩码字符串的主要部分,它确定输 ...

  9. Chapter 16_0 面向对象编程

    Lua中的table就是一种对象. 1.table和对象一样拥有状态 2.和对象一样有一个独立的标识符(a self) 3.和对象一样,具有独立于创建者和创建地的生命周期. 对象有他们自己的操作,ta ...

  10. rabbitmq——镜像队列

    转自:http://my.oschina.net/hncscwc/blog/186350?p=1 1. 镜像队列的设置 镜像队列的配置通过添加policy完成,policy添加的命令为: rabbit ...