English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Spring-Remote-Processing (mit Hessian-Beispiel)

mit HessianServiceExporter HessianProxyFactoryBean Klasse, mit der wir Remote-Services bereitstellen können, die von Hessian bereitgestellt werden.

Vorteile von Hessian

Hessian funktioniert gut durch die entire Firewall. Hessian ist portabel und kann mit anderen Sprachen wie PHP und .Net integriert werden.

Beispiel für Hessian-Remote-Processing

Sie müssen folgende Dateien erstellen, um eine einfache Hessian-Anwendung zu erstellen:

Calculation.java CalculationImpl.java web.xml hessian-servlet.xml client-beans.xml Client.java

1、Calculation.java

Dies ist eine einfache Schnittstelle, die eine Methode für mehrdimensionale Datensätze enthält.

package com.w3codebox;
public interface Calculation {
int cube(int number);
}

2、CalculationImpl.java

Diese Klasse bietet die Implementierung des Calculation-Interfaces.

package com.w3codebox;
public class CalculationImpl implements Calculation{
    public int cube(int number) {
        return number*number*number;
    }
}

3、web.xml

In diesem xml-Datei definieren wir DispatcherServlet als Frontcontroller. Wenn eine Anfrage mit der http-Dateierweiterung endet, wird sie an DispatcherServlet weitergeleitet.

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  
    <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>

4、hessian-servlet.xml

muss in WEB-INF-Verzeichnis erstellt. Der Name muss servletname sein-servlet.xml。它为 CalculationImpl HessianServiceExporter 定义了bean。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd">
    
<bean id="calculationBean" class="com.w3codebox.CalculationImpl"></bean>
<bean name="/Calculation.http" 
class="org.springframework.remoting.caucho.HessianServiceExporter">
    <property name="service" ref="calculationBean"></property>
    <property name="serviceInterface" value="com.w3codebox.Calculation"></property>
</bean>
</beans>

5、client-beans.xml

在此xml文件中,我们为 HessianProxyFactoryBean 定义了bean。您需要定义此类的两个属性。

serviceUrl serviceInterface

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd">
    
<bean id="calculationBean" 
class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
    <property name="serviceUrl" 
         value="http://localhost:8888/hessian/Calculation.http"></property>
    <property name="serviceInterface" value="com.w3codebox.Calculation"></property>
</bean>
</beans>

在此示例中,我们的项目名称为hessian,即用作serviceURL中的上下文根。


6、Client.java

此类获取Calculation的实例并调用多维数据集方法。

package com.w3codebox;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Client {
 public static void main(String[] args){
  ApplicationContext context = new ClassPathXmlApplicationContext("client",-beans.xml);
  Calculation calculation = (Calculation)context.getBean("calculationBean");
  System.out.println(calculation.cube(5));
 }
}

Wie man dieses Beispiel ausführt

Starten und部署 das Projekt, hier gehen wir davon aus, dass der Server auf8888auf dem Portnummer läuft. Wenn die Portnummer unterschiedlich ist, ändern Sie den client-serviceURLin beans.xml.

Dann, kompilieren und führen Sie die Datei Client.java aus.