2011-01-20 40 views
3

我是Spring和Hessian的新手,之前从未使用过。写作hessian serivce

我想写一个小小的Hello World程序,清楚地显示这个服务是如何工作的。

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

网上提供的黑森森资源并不完整,是一步一步的指导。如果我得到帮助的形式别人谁曾写麻袋服务

谢谢

回答

7

用于实现黑森州可调用服务的步骤

将不胜感激是:

  • 创建一个Java接口定义方法由客户调用。
  • 编写一个实现此接口的Java类。
  • 配置一个servlet来处理HTTP Hessian服务请求。
  • 配置HessianServiceExporter通过将服务调用委托给实现此接口的Java类来处理来自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> 
+0

谢谢,我该如何测试它? – daydreamer 2011-01-25 01:21:20

+0

请参阅我的答案请为测试案例。 – Konsumierer 2012-11-22 16:15:20

4

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

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");