Пул в JBoss все обрабатывается в конфигурации источника данных. Здесь - это HowTo. Веб-приложение должно будет выполнить поиск JNDI для источника данных, чтобы получить соединение с базой данных, а не делать прямой URL-адрес JDBC, и тогда у вас будет пул.
Транзакции - это еще одна история.
РЕДАКТИРОВАТЬ: В ответ на ваш комментарий о том, как это влияет на код, это выглядит так:
String jndiPath = "java:DataSourceJNDIName"; //The exact prefix here has a lot to do with clustering, etc., but if you are using one JBoss instance standalone, this works.
Context ctx = new InitialContext();
DataSource ds = (DataSource) PortableRemoteObject.narrow(ctx.lookup(jndiPath), DataSource.class);
Connection c = ds.getConnection();
Технически говоря, PortableRemoteObject.narrow не является обязательным в конфигурации отдельного сервера JBoss (4.2.2 в любом случае) наверняка, но это более правильный стандартный код J2EE, поскольку серверам общего применения не нужно возвращать объект правильный тип только для того, чтобы сделать Context.lookup.
Вышеуказанное не охватывает вопросы использования ресурсов и обработки ошибок. Предполагается, что вы закроете этот объект Context, когда закончите, и, конечно, соединение с базой данных, хотя JBoss будет кричать на вас, если вы забудете закрыть соединение с базой данных, и транзакция завершится, и закройте его для вас.
В любом случае, этот объект Connection можно использовать так же, как DriverManager.getConnection (url);