Hessian是由caucho提供的一个基于binary-RPC实现的远程通讯library,支持多种语言,包括c++,java,c#等,还支持flash/flex
Jetty 是一个开源的servlet容器,它是作为一个可以嵌入到其他的Java代码中的servlet容器而设计的。
通过结合jetty和hessian结合,就可以通过一个普通的java工程来提供远程通信服务,而不需要建立一个web工程
首先编写接口和服务类
public interface Hello {
String sayHello(String name);
}
import com.caucho.hessian.server.HessianServlet;
/**
* @author cjj
*
*/
public class HelloImpl extends HessianServlet implements Hello {
/**
*
*/
private static final long serialVersionUID = 1464625224364842441L;
@Override
public String sayHello(String name) {
return "hello:"+name;
}
}
HelloImpl 继承 HessianServlet
服务启动类:
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.prime.jerryhessian.service.HelloImpl;
/**
* @author cjj
*
*/
public class OneServletContext {
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
ServletContextHandler context = new ServletContextHandler(
ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
context.addServlet(new ServletHolder(new HelloImpl()), "/hello");
server.start();
server.join();
}
}
客户端代码为:
import java.net.MalformedURLException;
import org.prime.jerryhessian.service.Hello;
import com.caucho.hessian.client.HessianProxyFactory;
/**
* @author cjj
*
*/
public class HelloTest {
/**
* @param args
* @throws MalformedURLException
*/
public static void main(String[] args) throws MalformedURLException {
HessianProxyFactory factory = new HessianProxyFactory();
Hello hello = (Hello) factory.create(Hello.class,
"http://127.0.0.1:8080/hello");
System.out.println(hello.sayHello("cjj"));
}
}
用到的jar包有
- 大小: 22.4 KB
分享到:
相关推荐
Spring与Jetty的集成允许我们在不依赖其他Web服务器的情况下,快速启动并运行Hessian服务。 现在,我们详细分析“hessian-demo”项目结构和关键组件: 1. **服务端:** - 首先,创建一个服务接口,定义需要暴露给...
总的来说,这篇学习笔记将帮助读者掌握Flex与Hessian的结合使用,从而更好地构建高效、响应式的跨平台Web应用程序。通过实际代码示例和详细的解释,读者可以深化对这两种技术的理解,并提升开发技能。
5. **协议与序列化**:Dubbo 提供多种通信协议,如Dubbo、HTTP、Hessian等,以及多种序列化方式,如JSON、Fastjson、Hessian2等。 **SpringBoot 集成 Dubbo** 将 Dubbo 与 SpringBoot 结合,可以充分利用 ...
- Hessian和protobuf作为序列化协议的区别与选择 -Dubbo的集群策略,如Failover、Failfast、Failsafe、Loadbalance等 2. **Spring Boot**:Spring Framework的简化版,旨在简化Spring应用程序的初始搭建以及开发...
天梭项目提供的源码可以作为学习和参考的实例,帮助开发者理解和掌握SpringBoot、Dubbo与MySQL的结合使用。通过实际运行和调试代码,可以深入了解这些技术如何协同工作,以及如何在实际项目中解决常见的问题和挑战。...
5. **测试与监控**: 使用Mock、JUnit等进行单元测试,结合Actuator进行服务监控。 通过这个SpringBoot-Dubbo的项目,你可以学习如何将这两个强大的框架集成,理解它们各自的特性和如何协同工作,这对于构建高可用、...
5. **监控与调优**:熟悉Dubbo内置的监控中心,如Hessian协议的监控,以及如何通过Zookeeper进行服务治理。 接下来,Spring Boot以其简化Spring应用的初始搭建和开发过程而广受欢迎。面试中可能涉及的知识点有: 1...
- **测试与调试**:利用JUnit或Mockito进行单元测试,结合日志输出进行问题定位和调试。 总的来说,GMall项目是一个集成了SpringBoot和Dubbo的电商系统,具备优秀的可扩展性和稳定性,其源码为学习和研究提供了...
5. **协议与序列化**:支持多种通信协议(如Dubbo、HTTP、Hessian等)和序列化方式(如Java、Fastjson、Kryo等),优化数据传输效率。 **分布式组件** 在SpringBoot+dubbo的分布式架构中,常见的组件有: 1. **...
本项目是将Dubbo服务化框架与SpringBoot相结合,构建一个高效、易于管理的博客系统,旨在提供一种实践性的参考方案。 【Dubbo的核心概念与功能】 1. **服务提供者(Provider)**: 实现具体业务逻辑的服务,通过...
这篇文档将深入探讨这三者的核心概念、工作原理以及如何结合使用。 **Spring MVC** Spring MVC是Spring框架的一部分,专门用于构建Web应用程序。它遵循Model-View-Controller设计模式,提供了灵活的请求处理和视图...
其中,Spring Container是最常用的,因为它简单易用且与Spring框架紧密结合。 #### 7. Dubbo中的节点角色有哪些? Dubbo中有以下几种主要的节点角色: - **服务提供者(Provider)**:提供实际的服务实现。 - **...