https://github.com/megaprog/async-hessian
The approach to export Hessian service through Servlet 3.0 AsyncContext
https://github.com/megaprog/async-hessian
Last synced: 10 months ago
JSON representation
The approach to export Hessian service through Servlet 3.0 AsyncContext
- Host: GitHub
- URL: https://github.com/megaprog/async-hessian
- Owner: Megaprog
- Created: 2015-10-17T07:15:35.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2015-10-31T09:22:51.000Z (over 10 years ago)
- Last Synced: 2025-07-07T14:21:34.719Z (11 months ago)
- Language: Java
- Homepage:
- Size: 148 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Asynchronous Hessian
The approach to export [Hessian](http://hessian.caucho.com/) service through Servlet 3.0 AsyncContext
## How to get it?
You can use it as a maven dependency:
```xml
org.jmmo
async-hessian
1.1
```
Or download the latest build at:
https://github.com/megaprog/async-hessian/releases
## How to use it?
Create client interface:
```java
public interface HessianServiceInterface {
Integer synchronousCall();
Integer asynchronousCall();
}
```
Create server interface with same method signatures as in client one but asynchronous methods must return CompletableFuture:
```java
public interface HessianServiceInterfaceAsync {
Integer synchronousCall();
CompletableFuture asynchronousCall();
}
```
Implement server asynchronous interface:
```java
public class HessianServiceInterfaceAsyncImpl implements HessianServiceInterfaceAsync {
private static final Logger log = Logger.getLogger(HessianServiceInterfaceAsyncImpl.class.getName());
@Override
public Integer synchronousCall() {
log.info(() -> "Calling from http processing thread");
return 1;
}
@Override
public CompletableFuture asynchronousCall() {
return CompletableFuture.supplyAsync(() -> {
log.info(() -> "Calling from ForkJoinPool thread");
return 2;
});
}
}
```
Export server interface:
```xml
```
Define proxy service bean in client:
```xml
```
See more at client-server example:
https://github.com/Megaprog/async-hessian/tree/master/example