Hessian Service
Resin 3.1

Documentation
Examples
Changes

Quercus
Database
Amber
EJB
SOA/ESB
IoC
JMS
Servlet
JMX
Hessian
Security

Hessian Serialization
Hessian Addition
Service Addition
Hessian with DI
Burlap Addition
custom-protocol
Hessian Addition
Hessian
Hessian with DI

Writing a Hessian service as a plain-old Java object (POJO) eliminates protocol dependencies and simplifies service testing.

Demo

The addition example built the Hessian service as an extension of HessianService for simplicity. Most services will want to be independent of the Hessian protocol itself.

Files in this tutorial

WEB-INF/classes/example/MathService.javaInterface for the math service.
WEB-INF/classes/example/MathServiceImpl.javaThe main service implementation.
WEB-INF/resin-web.xmlConfigures the environment
demo.jspClient JSP

Service Implementation

The MathService implementation is just a Java class that implements the MatchService API.

MathServiceImpl.java
package example;

import javax.jws.WebService

@WebService
public class MathServiceImpl implements MathService {
  public int add(int a, int b)
  {
    return a + b;
  }
}

Remote Interface

The Java interface describes the remote API. This example has an addition method, add().

Resin's proxy client implementation uses the remote interface to expose the API to the proxy stub. Strictly speaking, though, the Java remote interface is not required for Hessian. A non-Java client will not use the Java interface, except possibly as documentation.

MathService.java
package example;

public interface MathService {
  public int add(int a, int b);
}

Service configuration

resin-web.xml
<web-app xmlns="http://caucho.com/ns/resin">

  <servlet-mapping url-pattern="/math/*"
                   servlet-class="example.MathService">
    <protocol type="hessian"/>
  </servlet-mapping>

  <web-service-client jndi-name="hessian/MathService">
    <url>hessian:http://localhost:8080/resin-doc/hessian/tutorial/hessian-service/math/</url>
    <interface>example.MathService</interface>
  </web-service-client>

</web-app>

Java Client

The client is identical to the basic example.

demo.jsp
<%@ page import="javax.annotation.Resource" %>
<%@ page import="example.MathService" %>
<%!
@Resource(name="hessian/MathService")
MathService math;
%>
<pre>
3 + 2 = <%= math.add(3, 2) %>
3 - 2 = <%= math.sub(3, 2) %>
3 * 2 = <%= math.mul(3, 2) %>
3 / 2 = <%= math.div(3, 2) %>
</pre>
3 + 2 = 5
3 - 2 = 1
3 * 2 = 6
3 / 2 = 1

Demo


Hessian Addition
Hessian
Hessian with DI
Copyright © 1998-2006 Caucho Technology, Inc. All rights reserved.
Resin ® is a registered trademark, and Quercustm, Ambertm, and Hessiantm are trademarks of Caucho Technology.