Я занимаюсь разработкой службы REST на основе jax-rs. Мне нужно соединение пула для моего приложения, поэтому я буду использовать commons pool2. Я планирую инициализировать свой пул в классе, реализующем ServletContextListener, чтобы при запуске приложения пул инициализировался. Проблема в том, что я не могу понять, как теперь получить доступ к моему пулу из моего класса FolderService.
Я попытался добавить соответствующий код ниже. Спасибо!
package rest.pool
@WebListener
public class TestPoolListener implements ServletContextListener {
private GenericObjectPool<GenericPool> connectionPool = null;
@Override
public void contextInitialized(ServletContextEvent arg0) {
final GenericPool[] active = new GenericPool[10];
PoolFactory poolFactory = new PoolFactory();
connectionPool = new GenericObjectPool<GenericPool>(poolFactory,config);
try {
for(int i=0 ; i<5 ; i++) {
active[i] = connectionPool.borrowObject();
}
for(int i=0 ; i<5 ; i++) {
connectionPool.returnObject(active[i]);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public class MyPool extends BasePooledObjectFactory<ODServer>{
@Override
public ODServer create() {
//create code here
}
}
package rest.resource;
import javax.ws.rs.*;
@Path("/folders")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class FolderResource {
FolderService folderService = new FolderService();
@GET
public List<Folder> getFolders(@Context UriInfo uriInfo) {
return folderService.getAllFolders();
}
}
package rest.service;
public class FolderService {
public List<Folder> getAllFolders(String uri) {
List<Folder> folders = new ArrayList<>();
**//How do I get access to the connection pool from here?**
return folders ;
}
}