Где я должен инициализировать мой Apache commons pool2, чтобы он был доступен из других классов - PullRequest
0 голосов
/ 01 мая 2018

Я занимаюсь разработкой службы 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 ;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...