技术开发 频道

J2EE连接器开发实践之: J2EE连接器的开发

  DemoConnectionFactoryImpl

  DemoConnectionFactoryImpl也是和CCI相关的类,它实现了ConnectionFactory接口,它主要用于创建客户端要使用的虚拟连接(DemoConnection)。由于DemoConnectionFactoryImpl类需要在JNDI名字空间中注册,故它需实现Serializable和Referenceable接口。客户端查找DemoConnectionFactoryImpl类,然后使用这个类来获得到EIS的连接。DemoConnectionFactoryImpl代码如例程4所示。

  例程4 DemoConnectionFactoryImpl的代码

1 package com.hellking.jca;
2 import javax.resource.*;
3 import javax.resource.spi.*;
4 import javax.resource.cci.*;
5 import javax.naming.*;
6 import java.io.*;
7 public class DemoConnectionFactoryImpl implements ConnectionFactory
8 {
9     protected Reference reference;
10     protected ManagedConnectionFactory manager;
11     protected ConnectionManager connectionManager;
12     protected PrintWriter out;//logOut
13     
14     //构造方法
15     public DemoConnectionFactoryImpl (ManagedConnectionFactory manager,
16            ConnectionManager connectionManager)
17     {
18         this.manager = manager;
19         //如果连接管理器为空,那么创建一个新的连接管理器
20         if (connectionManager == null)
21         {
22             connectionManager = new DemoConnectionManager();
23             ((DemoConnectionManager)connectionManager).setLogWriter (out);
24         }
25         else
26         {
27            this.connectionManager = connectionManager;
28         }
29     }
30        //获得一个连接      
31       public Connection getConnection() throws ResourceException
32       {
33           return (DemoConnection)
34             connectionManager.allocateConnection (manager, null);
35       }
36       //不支持此方法
37       public Connection getConnection(ConnectionSpec p) throws ResourceException
38       {
39            return null;
40       }
41       public void setReference(Reference ref)
42       {
43           reference = ref;
44       }
45     public Reference getReference()  
46     {
47           return reference;
48      }
49     
50     public void setLogWriter(PrintWriter _out)
51     {
52       out = _out;
53     }
54     
55     public PrintWriter getLogWriter()
56     {
57       return out;
58     }    
59    public RecordFactory getRecordFactory()  throws  ResourceException
60    {
61           return null;
62    }
63    public ResourceAdapterMetaData getMetaData()  
64    {
65        return null;
66    }
67 }
68
69
0
相关文章