написание гессиана службы - PullRequest
4 голосов
/ 21 января 2011

Я новичок в Spring и Hessian и никогда не использовал их раньше.

Я хочу написать небольшую программу Hello World, которая ясно показывает, как работает этот сервис.

Я использую Maven для получения списка деталей проекта и зависимостей.

Ресурсы для гессиана, доступные онлайн, не являются полным пошаговым руководством.

был бы признателен, если бы я получил помощь от кого-то, кто работал над написанием гессианских услуг

Ответы [ 2 ]

7 голосов
/ 21 января 2011

Шаги для реализации сервиса, вызываемого по гессиану:

  • Создание интерфейса Java, определяющего методы, которые будут вызываться клиентами.
  • Напишите класс Java, реализующий этот интерфейс.
  • Конфигурирование сервлета для обработки HTTP-запросов службы Hessian.
  • Сконфигурируйте HessianServiceExporter для обработки запросов сервиса Hessian от сервлета, делегируя вызовы сервиса классу Java, реализующему этот интерфейс.

Давайте рассмотрим пример. Создайте интерфейс 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-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
    name="/EchoService"
    class="org.springframework.remoting.caucho.HessianServiceExporter">
  <property name="service" ref="echoService"/>
  <property name="serviceInterface" value="com.example.echo.EchoService"/>
</bean>
4 голосов
/ 03 февраля 2011

Клиент должен создать прокси удаленного интерфейса. Вы можете просто написать 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");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...