org.springframework.remoting.caucho

Class HessianClientInterceptor

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      void afterPropertiesSet()
      Invoked by the containing BeanFactory after it has set all bean properties and satisfied BeanFactoryAware, ApplicationContextAware etc.
      protected RemoteAccessException convertHessianAccessException(java.lang.Throwable ex)
      Convert the given Hessian access exception to an appropriate Spring RemoteAccessException.
      protected java.lang.Object createHessianProxy(com.caucho.hessian.client.HessianProxyFactory proxyFactory)
      Create the Hessian proxy that is wrapped by this interceptor.
      java.lang.Object invoke(MethodInvocation invocation)
      Implement this method to perform extra treatments before and after the invocation.
      void prepare()
      Initialize the Hessian proxy for this interceptor.
      void setAllowNonSerializable(boolean allowNonSerializable)
      Set whether to allow non-serializable types as Hessian arguments and return values.
      void setChunkedPost(boolean chunkedPost)
      Set whether to use a chunked post for sending a Hessian request.
      void setConnectionFactory(com.caucho.hessian.client.HessianConnectionFactory connectionFactory)
      Specify a custom HessianConnectionFactory to use for the Hessian client.
      void setConnectTimeout(long timeout)
      Set the socket connect timeout to use for the Hessian client.
      void setDebug(boolean debug)
      Set whether Hessian's debug mode should be enabled.
      void setHessian2(boolean hessian2)
      Set whether version 2 of the Hessian protocol should be used for parsing requests and replies.
      void setHessian2Reply(boolean hessian2)
      Set whether version 2 of the Hessian protocol should be used for parsing replies.
      void setHessian2Request(boolean hessian2)
      Set whether version 2 of the Hessian protocol should be used for parsing requests.
      void setOverloadEnabled(boolean overloadEnabled)
      Set whether overloaded methods should be enabled for remote invocations.
      void setPassword(java.lang.String password)
      Set the password that this factory should use to access the remote service.
      void setProxyFactory(com.caucho.hessian.client.HessianProxyFactory proxyFactory)
      Set the HessianProxyFactory instance to use.
      void setReadTimeout(long timeout)
      Set the timeout to use when waiting for a reply from the Hessian service.
      void setSendCollectionType(boolean sendCollectionType)
      Set whether to send the Java collection type for each serialized collection.
      void setSerializerFactory(com.caucho.hessian.io.SerializerFactory serializerFactory)
      Specify the Hessian SerializerFactory to use.
      void setUsername(java.lang.String username)
      Set the username that this factory should use to access the remote service.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • HessianClientInterceptor

        public HessianClientInterceptor()
    • Method Detail

      • setProxyFactory

        public void setProxyFactory(@Nullable
                                    com.caucho.hessian.client.HessianProxyFactory proxyFactory)
        Set the HessianProxyFactory instance to use. If not specified, a default HessianProxyFactory will be created.

        Allows to use an externally configured factory instance, in particular a custom HessianProxyFactory subclass.

      • setSerializerFactory

        public void setSerializerFactory(com.caucho.hessian.io.SerializerFactory serializerFactory)
        Specify the Hessian SerializerFactory to use.

        This will typically be passed in as an inner bean definition of type com.caucho.hessian.io.SerializerFactory, with custom bean property values applied.

      • setSendCollectionType

        public void setSendCollectionType(boolean sendCollectionType)
        Set whether to send the Java collection type for each serialized collection. Default is "true".
      • setAllowNonSerializable

        public void setAllowNonSerializable(boolean allowNonSerializable)
        Set whether to allow non-serializable types as Hessian arguments and return values. Default is "true".
      • setOverloadEnabled

        public void setOverloadEnabled(boolean overloadEnabled)
        Set whether overloaded methods should be enabled for remote invocations. Default is "false".
        See Also:
        HessianProxyFactory.setOverloadEnabled(boolean)
      • setUsername

        public void setUsername(java.lang.String username)
        Set the username that this factory should use to access the remote service. Default is none.

        The username will be sent by Hessian via HTTP Basic Authentication.

        See Also:
        HessianProxyFactory.setUser(java.lang.String)
      • setPassword

        public void setPassword(java.lang.String password)
        Set the password that this factory should use to access the remote service. Default is none.

        The password will be sent by Hessian via HTTP Basic Authentication.

        See Also:
        HessianProxyFactory.setPassword(java.lang.String)
      • setDebug

        public void setDebug(boolean debug)
        Set whether Hessian's debug mode should be enabled. Default is "false".
        See Also:
        HessianProxyFactory.setDebug(boolean)
      • setChunkedPost

        public void setChunkedPost(boolean chunkedPost)
        Set whether to use a chunked post for sending a Hessian request.
        See Also:
        HessianProxyFactory.setChunkedPost(boolean)
      • setConnectionFactory

        public void setConnectionFactory(com.caucho.hessian.client.HessianConnectionFactory connectionFactory)
        Specify a custom HessianConnectionFactory to use for the Hessian client.
      • setConnectTimeout

        public void setConnectTimeout(long timeout)
        Set the socket connect timeout to use for the Hessian client.
        See Also:
        HessianProxyFactory.setConnectTimeout(long)
      • setReadTimeout

        public void setReadTimeout(long timeout)
        Set the timeout to use when waiting for a reply from the Hessian service.
        See Also:
        HessianProxyFactory.setReadTimeout(long)
      • setHessian2

        public void setHessian2(boolean hessian2)
        Set whether version 2 of the Hessian protocol should be used for parsing requests and replies. Default is "false".
        See Also:
        HessianProxyFactory.setHessian2Request(boolean)
      • setHessian2Request

        public void setHessian2Request(boolean hessian2)
        Set whether version 2 of the Hessian protocol should be used for parsing requests. Default is "false".
        See Also:
        HessianProxyFactory.setHessian2Request(boolean)
      • setHessian2Reply

        public void setHessian2Reply(boolean hessian2)
        Set whether version 2 of the Hessian protocol should be used for parsing replies. Default is "false".
        See Also:
        HessianProxyFactory.setHessian2Reply(boolean)
      • createHessianProxy

        protected java.lang.Object createHessianProxy(com.caucho.hessian.client.HessianProxyFactory proxyFactory)
                                               throws java.net.MalformedURLException
        Create the Hessian proxy that is wrapped by this interceptor.
        Parameters:
        proxyFactory - the proxy factory to use
        Returns:
        the Hessian proxy
        Throws:
        java.net.MalformedURLException - if thrown by the proxy factory
        See Also:
        HessianProxyFactory.create(java.lang.String)
      • invoke

        @Nullable
        public java.lang.Object invoke(MethodInvocation invocation)
                                          throws java.lang.Throwable
        Description copied from interface: MethodInterceptor
        Implement this method to perform extra treatments before and after the invocation. Polite implementations would certainly like to invoke Joinpoint.proceed().
        Specified by:
        invoke in interface MethodInterceptor
        Parameters:
        invocation - the method invocation joinpoint
        Returns:
        the result of the call to Joinpoint.proceed(); might be intercepted by the interceptor
        Throws:
        java.lang.Throwable - if the interceptors or the target object throws an exception
      • convertHessianAccessException

        protected RemoteAccessException convertHessianAccessException(java.lang.Throwable ex)
        Convert the given Hessian access exception to an appropriate Spring RemoteAccessException.
        Parameters:
        ex - the exception to convert
        Returns:
        the RemoteAccessException to throw