文档章节

Hessian客户端请求添加header信息

xfan1503
 xfan1503
发布于 2016/09/07 13:55
字数 152
阅读 219
收藏 1
public interface HeaderContext {
    Map<String, String> getHeaders();
}
public class HessianProxyWithContext extends HessianProxy {
    private static final long serialVersionUID = 1L;

    public HessianProxyWithContext(URL url, HessianProxyFactory factory, Class<?> type) {
        super(url, factory, type);
    }

    @Override
    protected void addRequestHeaders(HessianConnection conn) {
        super.addRequestHeaders(conn);
        if (_factory instanceof HeaderContext) {
            Map<String, String> context = ((HeaderContext) _factory).getHeaders();
            context.forEach((k, v) -> {
                conn.addHeader(k, v);
            });
        }
    }
}
public class HessianProxyWithContextFactory extends HessianProxyFactory implements HeaderContext {
    private Map<String, String> headers = new HashMap<>();

    public void setHeaders(Map<String, String> headers) {
        this.headers = headers;
    }

    @Override
    public Object create(Class api, URL url, ClassLoader loader) {
        if (api == null)
            throw new NullPointerException("api must not be null for HessianProxyFactory.create()");
        HessianProxyWithContext handler = new HessianProxyWithContext(url, this, api);
        return Proxy.newProxyInstance(loader, new Class[]{api, HessianRemoteObject.class}, handler);
    }

    @Override
    public Map<String, String> getHeaders() {
        return headers;
    }
}

 

<bean id="proxyFactory" class="x.y.HessianProxyWithContextFactory">
    <property name="headers">
        <props>
            <prop key="user">xxx</prop>
        </props>
    </property>
</bean>

© 著作权归作者所有

共有 人打赏支持
上一篇: gitblit快速开始
下一篇: nodejs工具收集
xfan1503
粉丝 1
博文 55
码字总数 6194
作品 0
长沙
高级程序员
私信 提问
Nginx 使用反向代理时 Hessian 的 411 错误解决方案

问题描述: 用 Hessian 实现 web service 过程中,需要创建对象时,是使用 HTTP POST 方法来传递数据的。但是在有反向代理 (nginx) 的情况下,会抛出异常 (com.caucho.hessian.client.Hessi...

鉴客
2011/05/19
4.4K
0
Hessian通信协议学习

什么是Hessian   Hessian是由caucho提供的一种开源的远程通讯协议。 Hessian协议工作流程图   *客户端程序请求服务端函数 *   1.调用客户端句柄,执行传送参数。   2.调用本地系统内...

o0无忧亦无怖
2015/10/15
337
0
未注意Curl-library Post 1024以上字节时的HTTP/1.1特性导致 Hes...

先列出 HessianPHP 的错误提示: CURL transport error: transfer closed with outstanding read data remaining 基础知识背景: 1)“Expect: 100-continue”的来龙去脉: HTTP/1.1 协议里设......

旁观者-郑昀
2013/09/03
0
0
简单的Hessian接口开发实例

需要的jar包 hessian-4.0.7.jar #客户端 接口 package com.test; public interface Printer { public String print(String a); public String say(); } 2.实现该接口 package com.test; publ......

阿联酋挖石油
2015/08/04
0
0
RMI在Spring中的使用之Hessian,BurlapServiceExporter

这两种实现都是基于http的,只不过Hessian使用二进制格式,Burlap使用XML格式传输文件。在4.x的Spring中官方已经将Burlap作为废弃类,配置和Hessian相同,下面详细讲下HessianServiceExporte...

luamas
2014/10/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

商品详情页上拉查看详情

商品详情页上拉查看详情 目录介绍 01.该库介绍 02.效果展示 03.如何使用 04.注意要点 05.优化问题 06.部分代码逻辑 07.参考案例 01.该库介绍 模仿淘宝、京东、考拉等商品详情页分页加载的UI效...

潇湘剑雨
31分钟前
1
0
Netty内存池之PoolArena详解

PoolArena是Netty内存池中的一个核心容器,它的主要作用是对创建的一系列的PoolChunk和PoolSubpage进行管理,根据申请的不同内存大小将最终的申请动作委托给这两个子容器进行管理。整体上,P...

爱宝贝丶
36分钟前
4
0
Django使用Channels实现WebSocket--下篇

希望通过对这两篇文章的学习,能够对Channels有更加深入的了解,使用起来得心应手游刃有余 通过上一篇《Django使用Channels实现WebSocket--上篇》的学习应该对Channels的各种概念有了清晰的认...

运维咖啡吧
43分钟前
3
0
linux下设置定时执行shell脚本的示例

很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据、数据库数据等 不适合人工经常做的一些操作这里简单说下 shell Shell俗称壳,类似于DOS下的command...

阿锋zxf
47分钟前
3
0
介绍Kubernetes监控Heapster

什么是Heapster? Heapster是容器集群监控和性能分析工具,天然的支持Kubernetes和CoreOS,Kubernetes有个出名的监控agent—cAdvisor。在每个kubernetes Node上都会运行cAdvisor,它会收集本机...

xiangyunyan
48分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部