日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

Spring Remoting: Hessian--转

發(fā)布時(shí)間:2025/4/5 javascript 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Remoting: Hessian--转 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文地址:http://www.studytrails.com/frameworks/spring/spring-remoting-hessian.jsp

Concept Overview

The?previous?tutorial presents an overview of spring remoting and lists down various remoting protocols supported by Spring. In this tutorial we look at Spring support for Hessian. Hessian is a web service protocol that transfers binary data between a remote service and its client. Hessian has been released by Caucho Technology. It requires that the web service be hosted on an http server. The client uses HTTP protocol to invoke remote methods on the server. The important classes are : -?
org.springframework.remoting.caucho.HessianServiceExporter?- This exports the specified service as a servlet based http request handler. Hessian services exported by this class can be accessed by any hessian client.?
org.springframework.remoting.caucho.HessianProxyFactoryBean?- This is the factory bean for Hessian clients. The exposed service is configured as a spring bean. The?ServiceUrl?property specifies the URL of the service and theServiceInterface?property specifies the interface of the implemented service.

Sample Program Overview


The example below is a GreetingService implemented as a remote Hessian service.?


Required Libraries
  • aopalliance.jar
  • commons-logging.jar
  • log4j.jar
  • org.springframework.aop.jar
  • org.springframework.asm.jar
  • org.springframework.beans.jar
  • org.springframework.context.jar
  • org.springframework.context.support.jar
  • org.springframework.core.jar
  • org.springframework.expression.jar
  • hessian-3.1.5.jar






Interaction Flow


  • Client sends a message call
  • This message call is handled by a Hessian Proxy created by HessianProxyFactoryBean
  • The Hessian Proxy converts the call into a remote call over HTTP
  • The Hessian Service Adapter created by HessianServiceExporter intercepts the remote call over HTTP
  • It forwards the method call to Service




Hessian Server Code Package Structure




Hessian Server Source Code




Create the GreetingService interface as shown below.?
Create a method named getGreeting() that takes a name as a parameter and returns the greeting message (see line 5 below).

GreetingService.java
1 2 3 4 5 6 package com.studytrails.tutorials.springremotinghessianserver; public interface GreetingService { String getGreeting(String name); }




Create a class GreetingServiceImpl as shown below.?
It implements the GreetingService interface?(described earlier)?
Implement the getGreeting() method by sending a greeting message (see lines 6-8 below).

GreetingServiceImpl.java
1 2 3 4 5 6 7 8 9 10 package com.studytrails.tutorials.springremotinghessianserver; public class GreetingServiceImpl?implements GreetingService{ @Override public String getGreeting(String name) { return "Hello " + name +?"!"; } }




Create the hessian-servlet.xml file (see below).?

Declare the 'greetingService' (see lines 14-15 below).?

Export the 'greetingService' using Spring's?HessianServiceExporter?class (see lines 17-21 below).?
Note the following properties of?HessianServiceExporter?class:

  • service: the service class bean which shall handle the Hessian call (see line 18 below)
  • serviceInterface: The interface to be used by Spring to create proxies for Hessian (see line 19 below)
hessian-servlet.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <bean id="greetingService" class="com.studytrails.tutorials.springremotinghessianserver.GreetingServiceImpl" /> <bean name="/greetingService.http" class="org.springframework.remoting.caucho.HessianServiceExporter"> <property name="service" ref="greetingService" /> <property name="serviceInterface" value="com.studytrails.tutorials.springremotinghessianserver.GreetingService"/> </bean> </beans>




Create the web.xml file (see below).?

Create the servlet mapping for the url pattern '*.http' (see line 16 below) for Spring's?DispatcherServlet?(see line 10 below)?

web.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Spring Remoting: Hessian Server</display-name> <servlet> <servlet-name>hessian</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>hessian</servlet-name> <url-pattern>*.http</url-pattern> </servlet-mapping> </web-app>





Hessian Client Code Package Structure







Hessian Client Source Code




Create the GreetingService interface as shown below.?
Copy the GreetingService interface created for Hessian Server?(described above)?and paste it in Hessian Client source code while retaining the java package structure.?

Note: For reference, the source code is shown below.?

GreetingService.java
1 2 3 4 5 6 package com.studytrails.tutorials.springremotinghessianserver; public interface GreetingService { String getGreeting(String name); }






Create a class TestSpringRemotingHessian shown below to test Spring Hessian Remoting.?
Load spring configuration file (see line 11 below)?
Get a reference to GreetingService using the bean name 'greetingService' (see line 12 below)?
Call the GreetingService.getGreting() method by passing the name 'Alpha' (see line 13 below)?
Print the greeting message (see line 14 below).

TestSpringRemotingHessian.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 package com.studytrails.tutorials.springremotinghessianclient; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.studytrails.tutorials.springremotinghessianserver.GreetingService; public class TestSpringRemotingHessian { public static void main(String[] args) { ApplicationContext context =?new ClassPathXmlApplicationContext("spring-config-client.xml"); GreetingService greetingService = (GreetingService)context.getBean("greetingService"); String greetingMessage = greetingService.getGreeting("Alpha"); System.out.println("The greeting message is : " + greetingMessage); } }





Create the spring-config-client.xml file (see below).?
Declare the 'greetingService' using Spring's?HessianProxyFactoryBean?class (see lines 13-16 below).?
Note the following properties of?HessianProxyFactoryBean?class:

  • serviceUrl : refers the URL of the remote service (see line 14 below).?
    Note URL part 'greetingService' corresponds to bean name property of HessianServiceExporter bean defined in hessian-servlet.xml?(defined earlier)
  • serviceInterface: The interface to be used by Spring to create proxies for Hessian (see line 15 below)

?

spring-config-client.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <bean id="greetingService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean"> <property name="serviceUrl" value="http://localhost:8080/springremotinghessianserver/greetingService.http"/> <property name="serviceInterface" value="com.studytrails.tutorials.springremotinghessianserver.GreetingService"/> </bean> </beans>



Running Sample Program





Hessian Server Sample Program

This sample program has been packaged as a jar installer which will copy the source code (along with all necessary dependencies)on your machine and automatically run the program for you as shown in the steps below. To run the sampleprogram, you only need Java Runtime Environment (JRE) on your machine and nothing else.?

Download And Automatically Run Hessian Server Sample Program



  • Save the?springremotinghessianserver-installer.jar?on your machine
  • Execute/Run the jar using Java Runtime Environment


(Alternatively you can go the folder containing the springremotinghessianserver-installer.jar and execute the jar using?java -jar springremotinghessianserver-installer.jar?command)?




  • You will see a wizard page as shown below



  • Enter the location of the directory where you want the program to install and run (say, C:\Temp)



  • The installer will copy the program on your machine and automatically execute it. The expected output indicating that the program has run successfully on your machine is shown in the image below.?
    This shows that the Hessian Server program has run successfully on your machine








Hessian Client Sample Program

This sample program has been packaged as a jar installer which will copy the source code (along with all necessary dependencies)on your machine and automatically run the program for you as shown in the steps below. To run the sampleprogram, you only need Java Runtime Environment (JRE) on your machine and nothing else.?

Download And Automatically Run Hessian Client Sample Program



  • Save the?springremotinghessianclient-installer.jar?on your machine
  • Execute/Run the jar using Java Runtime Environment


(Alternatively you can go the folder containing the springremotinghessianclient-installer.jar and execute the jar using?java -jar springremotinghessianclient-installer.jar?command)?




  • You will see a wizard page as shown below



  • Enter the location of the directory where you want the program to install and run (say, C:\Temp)



  • The installer will copy the program on your machine and automatically execute it. The expected output indicating that the program has run successfully on your machine is shown in the image below.?
    This shows that the Hessian Client program has run successfully on your machine






Browsing the Program



Hessian Server Sample Code

This source code for this program is downloaded in the folder specified by you (say, C:\Temp) as an eclipse project called?springremotinghessianserver?. All the required libraries have also been downloaded and placed in the same location. You can open this project from Eclipe IDE and directly browse the source code. See below for details of the project structure.





Redeploying this sample program in a different web server

The WAR file for this example is available as springremotinghessianserver.war in the download folder specified by you earlier (e.g. C:\Temp). The path for the WAR file is <DOWNLOAD_FOLDER_PATH>/springremotinghessianserver/dist/springremotinghessianserver.war.?
This WAR file can be deployed in any webserver of your choice and example can be executed.?




Hessian Client Sample Code

This source code for this program is downloaded in the folder specified by you (say, C:\Temp) as an eclipse project called?springremotinghessianclient?. All the required libraries have also been downloaded and placed in the same location. You can open this project from Eclipe IDE and directly browse the source code. See below for details of the project structure.

?

轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/5480808.html

總結(jié)

以上是生活随笔為你收集整理的Spring Remoting: Hessian--转的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。