- 浏览: 2663503 次
- 来自: 杭州
文章分类
- 全部博客 (1188)
- webwork (4)
- 网摘 (18)
- java (103)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (14)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (7)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介 -
107x:
不错,谢谢!
Python机器学习库
hessian还是挺简单的,简单记录一下。注意hessian要使用官方下载的最新版本,不要用mvn仓库的,那是6年前的库了,呵呵。
pom.xml
接口定义和实现:
webx.xml配置servlet:
客户端调用
python客户端更简单
Hello, world
hessian协议:
http://hessian.caucho.com/doc/hessian-serialization.html
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.duitang</groupId> <artifactId>t3</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <properties> <org.springframework.version>3.1.2.RELEASE</org.springframework.version> </properties> <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>com.duitang.external</groupId> <artifactId>hessian</artifactId> <version>4.0.7</version> </dependency> </dependencies> </project>
接口定义和实现:
public interface BasicAPI { public String hello(); }
package test; public class BasicService implements BasicAPI{ public String hello() { return "Hello, world"; } }
webx.xml配置servlet:
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>duitang.com</display-name> <servlet> <servlet-name>Hello</servlet-name> <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class> <init-param> <param-name>home-api</param-name> <param-value>test.BasicAPI</param-value> </init-param> <init-param> <param-name>home-class</param-name> <param-value>test.BasicService</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Hello</servlet-name> <url-pattern>/Hello</url-pattern> </servlet-mapping> </web-app>
客户端调用
package test; import java.net.MalformedURLException; import com.caucho.hessian.client.HessianProxyFactory; public class Test{ public static void main(String[] args) throws MalformedURLException{ String url="http://localhost:8080/Hello"; HessianProxyFactory proxyFactory=new HessianProxyFactory(); BasicAPI basicAPI = (BasicAPI) proxyFactory.create(BasicAPI.class, url); System.out.println(basicAPI.hello()); } }
python客户端更简单
if __name__ == "__main__": proxy = Hessian("http://localhost:8080/Hello") try: print proxy.hello() except Error, v: print "ERROR", v
Hello, world
hessian协议:
http://hessian.caucho.com/doc/hessian-serialization.html
发表评论
-
Raft
2018-07-12 14:20 762前言 上篇文章说解决问题要分而治之,先把分片的问题解决了再 ... -
java uuid
2017-09-14 18:18 560在java中产生uuid的方式是使用java.util.UU ... -
JAVA 编码规范
2017-09-06 11:34 418https://google.github.io/style ... -
mac 入门
2015-12-01 16:28 626http://foocoder.com/blog/wo-zai ... -
java 反编译工具gad
2014-05-09 12:04 977java 反编译工具gad,备个份。 -
java 代码大全(code book)
2014-04-29 10:59 1083参考这里: http://www.java2s.com/C ... -
SQL语法解析器JSQLParser
2014-02-09 19:53 2150SQL 语法解释器jsqlparser 是用java ... -
BufferedInputStream 深入研究。
2013-11-19 13:26 14271. BufferedInputStream的基本原理 ... -
java 启动脚本
2013-08-22 19:08 982java 启动脚本 #!/bin/bash cmd=&q ... -
CRLF escape
2013-08-06 17:51 1201最近需要对用户输入的CRLF即(\r\n)做escape, ... -
安全的自增类
2013-07-22 18:16 991java中一个计数器如果超过MAX_VALUE再自增会如何? ... -
solr日志被block的问题
2013-05-23 16:48 1265"catalina-exec-22386" ... -
beanMapper
2013-01-13 22:43 889实在被一堆get,set搞烦了,周末写了一个beanMappe ... -
java instanceof ,isInstance(),isAssignableFrom之前的差异
2013-01-06 11:00 962public class ItemQuery { ... -
通过gzip对字符串压缩
2012-12-22 18:10 3128通过GZIPOutputStream,GZIPInputStr ... -
关于URL编码
2012-12-21 14:18 1112一、问题的由来 URL就是网址,只要上网,就一定会用到。 ... -
spring的FactoryBean机制
2012-11-20 16:18 1240spring可以通过的FactoryBean的形式把一个Fac ... -
HashMap cpu占用 100%
2012-11-10 22:22 1815今天在重现出HashMap cpu占用100%了,只 ... -
文字扫描工具--java.util.Scanner
2012-11-10 14:33 1102A simple text scanner which c ... -
一个隐形的java int溢出
2012-11-06 22:17 1120故事的背景: 笔者最近在做一个类SNS的项目, ...
相关推荐
2. 处理结果:服务器执行完方法后,返回的数据会通过Hessian协议反序列化成对象,Android客户端可以直接使用。 五、错误处理与调试 1. 异常处理:在调用远程方法时,可能会出现网络异常或服务器异常,需要捕获并...
对Hessian服务的监控和日志记录是必要的,可以帮助开发者了解服务运行状态,快速定位和解决问题。可以使用各种监控工具,如JMX、Prometheus或ELK栈等。 10. **测试**: 在实际部署前,需要对Hessian服务进行充分...
这个简单的Hessian demo可能还包括一些错误处理和日志记录,以帮助调试和理解流程。通过实践这个示例,你可以更深入地理解Hessian如何工作,以及如何在实际项目中应用它。 总的来说,Hessian提供了高效、轻量级的跨...
在VC(Visual C++)环境下实现Hessian客户端,可以让你的应用程序与使用Hessian服务端进行高效的数据交换。本文将详细介绍如何在VC中实现Hessian客户端,并提供相关知识点。 首先,理解Hessian协议的基础知识是必要...
此外,Spring还提供了AOP(面向切面编程)功能,可以用于实现服务的安全控制和日志记录。 再来看看Jetty服务器。Jetty是一个轻量级、高性能的HTTP服务器和Servlet容器。在这个示例中,Jetty作为Hessian服务的承载...
在生产环境中,对Hessian服务的监控和日志记录至关重要。可以使用Spring的AOP功能添加拦截器来收集调用统计信息,或者集成像ELK(Elasticsearch, Logstash, Kibana)这样的日志管理平台进行日志分析。 7. **版本...
4. 在客户端,通过Spring的`HessianClientInterceptor`或者直接使用`HessianProxyFactory`来创建Hessian代理,调用远程服务。 5. 配置服务器端(如Tomcat)以部署Spring应用上下文和Hessian服务。 6. 运行并测试服务...
需要注意的是,虽然Hessian简化了跨平台交互,但安全性、错误处理和日志记录等方面仍需要开发者仔细考虑和实现。 总之,这个"PHP与Java通信Demo源码"是一个很好的学习资源,帮助开发者理解如何在PHP和Java之间使用...
3. **定义AOP切面**:创建一个切面类,定义需要在Hessian调用前后执行的通知,如记录调用日志、性能统计等。 4. **配置AOP**:在Spring配置文件中,使用`<aop:config>`和`<aop:aspect>`标签来定义切面并关联通知。 ...
当开发过程中需要依赖外部库,如hessian_lite.jar,可以将其添加到Maven的POM(Project Object Model)文件中,然后使用`mvn install`命令将这个jar包安装到本地的Maven仓库。这样,其他依赖此jar包的项目就可以通过...
在实战应用中,获取客户端请求的URL是一项常见的需求,这有助于我们理解请求来源,进行日志记录,或者根据不同的URL采取不同的处理策略。在Hessian服务端,我们可以利用Servlet API来获取这些信息。例如,`...
本文将深入探讨如何使用Spring4框架结合Hessian4库来创建和消费远程服务,以此实现高效的二进制RPC(Remote Procedure Call)通信。 首先,Spring4是一个强大的Java应用程序框架,它提供了依赖注入、AOP(面向切面...
5. **SafeDay.java**:这可能是Java后端的一个类,可能用于实现Hessian服务,提供特定业务逻辑,例如安全日志记录或者安全性检查等。需要分析代码以了解其具体功能。 6. **WebTest**:这可能是一个测试类或者测试...
4. 配置Hessian服务:在Spring配置文件中,使用`<bean>`标签声明`UserService`的实现,并通过`hessian-proxy-factory-bean`将其转换为Hessian服务。 ```xml <hessian:service id="userServiceHessian" interface=...
压缩包里有两个 springMVC+Ibatis 的项目:HessianServer(服务器端),HessianClient(客户端),解压导入到MyEclipse 更改配置文件中的数据源,建表(和实体类对应的表),执行客户端中的BasicClient.java文件即可...
开发者可以使用Flex的调试器工具以及日志记录来定位问题。对于Hessian服务,还可以使用专门的Hessian测试工具来检查服务接口的正确性。 7. **示例代码**:压缩包中的`HessianFlexClient.swf`很可能是一个简单的Flex...
然而,在实际应用中,有时我们需要获取到远程调用端的IP地址、主机名等信息,以便进行日志记录、权限控制或特定业务处理。在Hessian的官方文档和网络资源中,很难找到直接获取这些信息的方法。本文将通过深入剖析...
6. **优化与调试**:为了提升性能,我们可以调整Hessian的缓冲区大小,或者使用压缩来减小数据传输量。同时,通过日志记录和调试工具,可以有效地定位和解决问题。 总的来说,Flex-Spring-Hessian框架结合了Flex的...
- 使用 Hessian 将该实例序列化成字节流。 3. **发送数据包**: - 通过 `CliService` 或 `CliClientService` 发送序列化后的字节流至目标服务器。 4. **触发反序列化**: - 目标服务器接收到数据后,使用 JRaft...