Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo llamar a la interfaz de arpillera primavera

Cómo llamar a la interfaz de arpillera primavera

1. Además de proporcionar llamadas remotas a métodos de llamadas HTTP, Spring también brinda soporte para implementaciones de llamadas remotas de terceros, incluido el soporte para Hessian.

Hessian es una implementación de llamada remota de protocolo binario ligera lanzada por Caocho y también se basa en el protocolo HTTP. Su principio de funcionamiento es el siguiente:

(1). /p> p>

a. Enviar solicitud de llamada remota:

Programa cliente-gt; enviar solicitud de llamada remota-gt; gt; envía un proxy de solicitud remota al servidor a través del protocolo HTTP.

b.Recibir respuesta de llamada remota:

Resultado de llamada remota-gt;

(1). Lado del servidor:

a. Recibir solicitud de llamada remota:

Solicitud HTTP de llamada remota-gt; El objeto de llamada remota está encapsulado en el marco de HessianSkeleton -gt; HessianSkeleton maneja solicitudes de llamada remota.

b. Devuelve la respuesta de la llamada remota:

HessianSkeleton encapsula los resultados del procesamiento de llamadas remotas en el marco HessianSkeleton--gt respuesta HTTP--gt;

Este artículo analizará el código fuente relacionado con el soporte de Spring para Hessian para comprender la implementación específica del soporte de Spring para Hessian.

2. Configuración del cliente Hessian:

El cliente Hessian requiere una configuración similar a la siguiente:

[xhtml] ver copia simple

lt; bean id="hessianProxy " class="org.springframework.remoting.caucho.HessianProxyFactoryBean"gt;

lt; propiedad nombre="serviceUrl"gt

lt ;valuegt;http ://hostAddress:8080/serviceUrllt;/valuegt;

lt;/propertygt;

lt;nombre de propiedad="serviceInterface"gt; valuegt; RemoteInvocationServiceInterfacelt;/valuegt;

]lt;/propertygt;

lt;/beangt;

Similar a la configuración de la persona que llama HTTP, debe configurar la URL de la solicitud de llamada remota debe ser coherente con la URL del lado del servidor. Spring encuentra la solicitud del lado del servidor a través de DispatcherServlet

HessianProxyFactoryBean es el contenedor de IoC para que Spring lo administre. es el principal responsable de generar el proxy de llamadas remotas del lado del servidor y la configuración del interceptor de llamadas remotas del cliente.

3.HessianProxyFactoryBean:

HessianProxyFactoryBean genera configuraciones de proxy e interceptor de llamadas remotas para llamadas remotas del cliente. Su código fuente es el siguiente:

[java] ver copia simple.

clase pública HessianProxyFactoryBean extiende HessianClientInterceptor implementa FactoryBeanlt; {

//Objeto proxy de llamada remota

objeto privado serviceProxy; /Método de devolución de llamada del contenedor Spring IoC después de completar la inyección de dependencia

public void afterPropertiesSet() {

//Primero llame al método de devolución de llamada de la clase principal HessianClientInterceptor

super. afterPropertiesSet();

// Crea un objeto proxy de llamada remota y configura el interceptor. Presta atención a este parámetro porque // HessianProxyFactoryBean hereda de HessianClientInterceptor. Por lo tanto, es él mismo

// Un interceptor de cliente Hassien

this.serviceProxy = new ProxyFactory(getServiceInterface(), this).getProxy(getBeanClassLoader());

}

//S/ProxyFactoryBean hereda de HassienClientInterceptor, por lo que en sí mismo es

// un interceptor de cliente Hassien.

//La interfaz FactoryBean del contenedor Spring IoC genera un método de objeto a través del cual el cliente obtiene el

//Proxy de llamada remota administrado

public Object getObject () {

return this.}

// Obtener el tipo de objeto

public Classlt;? getObjectType() {

<; p > return getServiceInterface();

}

// Si el objeto es un tipo de estado único, Spring administra los objetos en modo de estado único mediante default

public boolean isSingleton() {

return true

}

}

La función principal de HessianProxyFactoryBean es la devolución de llamada en el contenedor IoC. Genere un objeto proxy de llamada remota en el método y configure el interceptor del objeto proxy HessianClientInterceptor al generar el objeto proxy de llamada remota para interceptar la solicitud de llamada remota del cliente:

HessianClientInterceptor intercepte la llamada remota del cliente y proporcione al cliente Cree un proxy de Hesse para llamadas remotas.

HessianFactoryBean es la función principal del método de devolución de llamada del contenedor IoC y se utiliza para generar objetos proxy de llamada remota. Cree un proxy de Hesse para llamadas remotas del cliente y llame al objeto de llamada remota del lado del servidor a través del proxy de Hesse. El código fuente es el siguiente:

[java] ver copia simple

público. class HessianClientInterceptor extiende UrlBasedRemoteAccessor implementa MethodInterceptor {

//crear fábrica de proxy de Hesse

private HessianProxyFactory proxyFactory = new HessianProxyFactory()

//proxy de Hesse

objeto privado hessianProxy;

//Establecer fábrica de proxy de Hesse

public void setProxyFactory( HessianProxyFactory proxyFactory) {

this.proxyFactory = (proxyFactory! = null ? proxyFactory: new HessianProxyFactory());

}

// Establecer la fábrica de serializadores de Hesse

public void setSerializerFactory (SerializerFactory serializerFactory) {

this.proxyFactory.setSerializerFactory(serializerFactory)

}

;