4

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

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

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

在线可用的粗麻布资源不是完整的分步指南。

如果我能从曾经写过粗麻布服务的人那里得到帮助,我将不胜感激

4

2 回答 2

7

实现 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>
于 2011-01-21T04:40:22.137 回答
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");
于 2011-02-03T09:57:47.230 回答