Java Doc for JndiRmiClientInterceptor.java in  » J2EE » spring-framework-2.0.6 » org » springframework » remoting » rmi » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » J2EE » spring framework 2.0.6 » org.springframework.remoting.rmi 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


org.springframework.jndi.JndiObjectLocator
   org.springframework.remoting.rmi.JndiRmiClientInterceptor

All known Subclasses:   org.springframework.remoting.rmi.JndiRmiProxyFactoryBean,
JndiRmiClientInterceptor
public class JndiRmiClientInterceptor extends JndiObjectLocator implements MethodInterceptor,InitializingBean(Code)
Interceptor for accessing RMI services from JNDI. Typically used for RMI-IIOP (CORBA), but can also be used for EJB home objects (for example, a Stateful Session Bean home). In contrast to a plain JNDI lookup, this accessor also performs narrowing through PortableRemoteObject.

With conventional RMI services, this invoker is typically used with the RMI service interface. Alternatively, this invoker can also proxy a remote RMI service with a matching non-RMI business interface, i.e. an interface that mirrors the RMI service methods but does not declare RemoteExceptions. In the latter case, RemoteExceptions thrown by the RMI stub will automatically get converted to Spring's unchecked RemoteAccessException.

The JNDI environment can be specified as "jndiEnvironment" property, or be configured in a jndi.properties file or as system properties. For example:

<property name="jndiEnvironment">
 <props>
 <prop key="java.naming.factory.initial">com.sun.jndi.cosnaming.CNCtxFactory</prop>
 <prop key="java.naming.provider.url">iiop://localhost:1050</prop>
 </props>
 </property>

author:
   Juergen Hoeller
since:
   1.1
See Also:   JndiRmiClientInterceptor.setJndiTemplate
See Also:   JndiRmiClientInterceptor.setJndiEnvironment
See Also:   JndiRmiClientInterceptor.setJndiName
See Also:   JndiRmiServiceExporter
See Also:   JndiRmiProxyFactoryBean
See Also:   org.springframework.remoting.RemoteAccessException
See Also:   java.rmi.RemoteException
See Also:   java.rmi.Remote
See Also:   javax.rmi.PortableRemoteObject.narrow




Method Summary
public  voidafterPropertiesSet()
    
protected  RemoteInvocationcreateRemoteInvocation(MethodInvocation methodInvocation)
     Create a new RemoteInvocation object for the given AOP method invocation.

The default implementation delegates to the configured JndiRmiClientInterceptor.setRemoteInvocationFactory RemoteInvocationFactory . This can be overridden in subclasses in order to provide custom RemoteInvocation subclasses, containing additional invocation parameters (e.g.

protected  ObjectdoInvoke(MethodInvocation invocation, Remote stub)
     Perform the given invocation on the given RMI stub.
protected  ObjectdoInvoke(MethodInvocation methodInvocation, RmiInvocationHandler invocationHandler)
     Apply the given AOP method invocation to the given RmiInvocationHandler .
public  RemoteInvocationFactorygetRemoteInvocationFactory()
     Return the RemoteInvocationFactory used by this accessor.
public  ClassgetServiceInterface()
     Return the interface of the service to access.
protected  RemotegetStub()
     Return the RMI stub to use.
public  Objectinvoke(MethodInvocation invocation)
     Fetches an RMI stub and delegates to JndiRmiClientInterceptor.doInvoke .
protected  booleanisConnectFailure(RemoteException ex)
     Determine whether the given RMI exception indicates a connect failure.
protected  booleanisConnectFailure(SystemException ex)
     Determine whether the given CORBA exception indicates a connect failure.
protected  RemotelookupStub()
     Create the RMI stub, typically by looking it up.

Called on interceptor initialization if "cacheStub" is "true"; else called for each invocation by JndiRmiClientInterceptor.getStub() .

The default implementation retrieves the service from the JNDI environment.

public  voidprepare()
     Fetches the RMI stub on startup, if necessary.
protected  ObjectrefreshAndRetry(MethodInvocation invocation)
     Refresh the RMI stub and retry the given invocation.
public  voidsetCacheStub(boolean cacheStub)
     Set whether to cache the RMI stub once it has been located.
public  voidsetLookupStubOnStartup(boolean lookupStubOnStartup)
     Set whether to look up the RMI stub on startup.
public  voidsetRefreshStubOnConnectFailure(boolean refreshStubOnConnectFailure)
     Set whether to refresh the RMI stub on connect failure.
public  voidsetRemoteInvocationFactory(RemoteInvocationFactory remoteInvocationFactory)
     Set the RemoteInvocationFactory to use for this accessor.
public  voidsetServiceInterface(Class serviceInterface)
     Set the interface of the service to access.



Method Detail
afterPropertiesSet
public void afterPropertiesSet() throws NamingException(Code)



createRemoteInvocation
protected RemoteInvocation createRemoteInvocation(MethodInvocation methodInvocation)(Code)
Create a new RemoteInvocation object for the given AOP method invocation.

The default implementation delegates to the configured JndiRmiClientInterceptor.setRemoteInvocationFactory RemoteInvocationFactory . This can be overridden in subclasses in order to provide custom RemoteInvocation subclasses, containing additional invocation parameters (e.g. user credentials).

Note that it is preferable to build a custom RemoteInvocationFactory as a reusable strategy, instead of overriding this method.
Parameters:
  methodInvocation - the current AOP method invocation the RemoteInvocation object
See Also:   RemoteInvocationFactory.createRemoteInvocation




doInvoke
protected Object doInvoke(MethodInvocation invocation, Remote stub) throws Throwable(Code)
Perform the given invocation on the given RMI stub.
Parameters:
  invocation - the AOP method invocation
Parameters:
  stub - the RMI stub to invoke the invocation result, if any
throws:
  Throwable - in case of invocation failure



doInvoke
protected Object doInvoke(MethodInvocation methodInvocation, RmiInvocationHandler invocationHandler) throws RemoteException, NoSuchMethodException, IllegalAccessException, InvocationTargetException(Code)
Apply the given AOP method invocation to the given RmiInvocationHandler .

The default implementation delegates to JndiRmiClientInterceptor.createRemoteInvocation .
Parameters:
  methodInvocation - the current AOP method invocation
Parameters:
  invocationHandler - the RmiInvocationHandler to apply the invocation to the invocation result
throws:
  RemoteException - in case of communication errors
throws:
  NoSuchMethodException - if the method name could not be resolved
throws:
  IllegalAccessException - if the method could not be accessed
throws:
  InvocationTargetException - if the method invocation resulted in an exception
See Also:   org.springframework.remoting.support.RemoteInvocation




getRemoteInvocationFactory
public RemoteInvocationFactory getRemoteInvocationFactory()(Code)
Return the RemoteInvocationFactory used by this accessor.



getServiceInterface
public Class getServiceInterface()(Code)
Return the interface of the service to access.



getStub
protected Remote getStub() throws NamingException, RemoteLookupFailureException(Code)
Return the RMI stub to use. Called for each invocation.

The default implementation returns the stub created on initialization, if any. Else, it invokes JndiRmiClientInterceptor.lookupStub to get a new stub for each invocation. This can be overridden in subclasses, for example in order to cache a stub for a given amount of time before recreating it, or to test the stub whether it is still alive. the RMI stub to use for an invocation
throws:
  NamingException - if stub creation failed
throws:
  RemoteLookupFailureException - if RMI stub creation failed




invoke
public Object invoke(MethodInvocation invocation) throws Throwable(Code)
Fetches an RMI stub and delegates to JndiRmiClientInterceptor.doInvoke . If configured to refresh on connect failure, it will call JndiRmiClientInterceptor.refreshAndRetry on corresponding RMI exceptions.
See Also:   JndiRmiClientInterceptor.getStub
See Also:   JndiRmiClientInterceptor.doInvoke
See Also:   JndiRmiClientInterceptor.refreshAndRetry
See Also:   java.rmi.ConnectException
See Also:   java.rmi.ConnectIOException
See Also:   java.rmi.NoSuchObjectException



isConnectFailure
protected boolean isConnectFailure(RemoteException ex)(Code)
Determine whether the given RMI exception indicates a connect failure.

The default implementation delegates to RmiClientInterceptorUtils.isConnectFailure .
Parameters:
  ex - the RMI exception to check whether the exception should be treated as connect failure




isConnectFailure
protected boolean isConnectFailure(SystemException ex)(Code)
Determine whether the given CORBA exception indicates a connect failure.

The default implementation checks for CORBA's org.omg.CORBA.OBJECT_NOT_EXIST exception.
Parameters:
  ex - the RMI exception to check whether the exception should be treated as connect failure




lookupStub
protected Remote lookupStub() throws NamingException, RemoteLookupFailureException(Code)
Create the RMI stub, typically by looking it up.

Called on interceptor initialization if "cacheStub" is "true"; else called for each invocation by JndiRmiClientInterceptor.getStub() .

The default implementation retrieves the service from the JNDI environment. This can be overridden in subclasses. the RMI stub to store in this interceptor
throws:
  NamingException - if the JNDI lookup failed
throws:
  RemoteLookupFailureException - if RMI stub creation failed
See Also:   JndiRmiClientInterceptor.setCacheStub
See Also:   JndiRmiClientInterceptor.lookup




prepare
public void prepare() throws NamingException, RemoteLookupFailureException(Code)
Fetches the RMI stub on startup, if necessary.

Note: As of Spring 2.1, this method will always throw RemoteLookupFailureException and not declare NamingException anymore.
throws:
  NamingException - if the JNDI lookup failed
throws:
  RemoteLookupFailureException - if RMI stub creation failed
See Also:   JndiRmiClientInterceptor.setLookupStubOnStartup
See Also:   JndiRmiClientInterceptor.lookupStub




refreshAndRetry
protected Object refreshAndRetry(MethodInvocation invocation) throws Throwable(Code)
Refresh the RMI stub and retry the given invocation. Called by invoke on connect failure.
Parameters:
  invocation - the AOP method invocation the invocation result, if any
throws:
  Throwable - in case of invocation failure
See Also:   JndiRmiClientInterceptor.invoke



setCacheStub
public void setCacheStub(boolean cacheStub)(Code)
Set whether to cache the RMI stub once it has been located. Default is "true".

Can be turned off to allow for hot restart of the RMI server. In this case, the RMI stub will be fetched for each invocation.
See Also:   JndiRmiClientInterceptor.setLookupStubOnStartup




setLookupStubOnStartup
public void setLookupStubOnStartup(boolean lookupStubOnStartup)(Code)
Set whether to look up the RMI stub on startup. Default is "true".

Can be turned off to allow for late start of the RMI server. In this case, the RMI stub will be fetched on first access.
See Also:   JndiRmiClientInterceptor.setCacheStub




setRefreshStubOnConnectFailure
public void setRefreshStubOnConnectFailure(boolean refreshStubOnConnectFailure)(Code)
Set whether to refresh the RMI stub on connect failure. Default is "false".

Can be turned on to allow for hot restart of the RMI server. If a cached RMI stub throws an RMI exception that indicates a remote connect failure, a fresh proxy will be fetched and the invocation will be retried.
See Also:   java.rmi.ConnectException
See Also:   java.rmi.ConnectIOException
See Also:   java.rmi.NoSuchObjectException




setRemoteInvocationFactory
public void setRemoteInvocationFactory(RemoteInvocationFactory remoteInvocationFactory)(Code)
Set the RemoteInvocationFactory to use for this accessor. Default is a DefaultRemoteInvocationFactory .

A custom invocation factory can add further context information to the invocation, for example user credentials.




setServiceInterface
public void setServiceInterface(Class serviceInterface)(Code)
Set the interface of the service to access. The interface must be suitable for the particular service and remoting tool.

Typically required to be able to create a suitable service proxy, but can also be optional if the lookup returns a typed stub.




Methods inherited from org.springframework.jndi.JndiObjectLocator
public void afterPropertiesSet() throws IllegalArgumentException, NamingException(Code)(Java Doc)
public Class getExpectedType()(Code)(Java Doc)
public String getJndiName()(Code)(Java Doc)
protected Object lookup() throws NamingException(Code)(Java Doc)
public void setExpectedType(Class expectedType)(Code)(Java Doc)
public void setJndiName(String jndiName)(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.