写作粗麻布服务

时间:2011-01-20 23:26:56

标签: spring maven hessian

我是Spring和Hessian的新手,从未使用过它们。

我想写一个小型的Hello World程序,它清楚地显示了这项服务的工作原理。

我正在使用Maven列出项目详细信息和依赖项。

在线提供的粗麻布资源并非完整的分步指南。

如果我从一位编写过粗体服务的人那里得到帮助,我将不胜感激

2 个答案:

答案 0 :(得分:7)

实现Hessian可调用服务的步骤如下:

  • 创建一个Java接口,定义客户端调用的方法。
  • 编写实现此接口的Java类。
  • 配置servlet以处理HTTP Hessian服务请求。
  • 通过将服务调用委托给实现此接口的Java类,配置HessianServiceExporter来处理来自servlet的Hessian服务请求。

我们来看一个例子。创建Java接口:

public interface EchoService {
    String echoString(String value);
}

编写实现此接口的Java类:

public class EchoServiceImpl implements EchoService {
    public String echoString(String value) {
        return value;
    }
}

web.xml文件中,配置一个servlet:

<servlet>
  <servlet-name>/EchoService</servlet-name>
  <servlet-class>org.springframework.web.context.support.HttpRequestHandlerServlet</servlet-class>  
</servlet>

<servlet-mapping>
  <servlet-name>/EchoService</servlet-name>
  <url-pattern>/remoting/EchoService</url-pattern>
</servlet-mapping>

在Spring应用程序上下文中配置服务类的实例:

<bean id="echoService" class="com.example.echo.EchoServiceImpl"/>

在Spring应用程序上下文中配置导出器。 bean名称必须与servlet名称匹配。

<bean
    name="/EchoService"
    class="org.springframework.remoting.caucho.HessianServiceExporter">
  <property name="service" ref="echoService"/>
  <property name="serviceInterface" value="com.example.echo.EchoService"/>
</bean>

答案 1 :(得分:4)

客户端必须创建远程接口的代理。你可以简单地写一个JUnit-Test:

HessianProxyFactory proxyFactory = new HessianProxyFactory();
        proxyFactory.setHessian2Reply(false);
        proxyFactory.setHessian2Request(false);
        com.example.echo.EchoService service = proxyFactory.create(
                com.example.echo.EchoService, "http://localhost:8080/<optional-context/>remoting/EchoService");

Assert.equals(service.echoString("test"), "test");