相关疑难解决方法(0)

tomcat-dbcp vs commons-dbcp

这两个连接池库之间似乎存在很多混淆.我想知道哪一个更好(如果有的话)?

以下是我想提出的一些观点......有人可以验证吗?

  1. Tomcat DBCP:使用默认的tomcat-dbcp.jar,它将出现在tomcat/lib目录中.您不需要 web-inf/lib中的commons-dbcp.jar或commons-pool.jar库.DB驱动程序应放在tomcat/lib中.

  2. Tomcat DBCP数据源类是org.apache.tomcat.dbcp.dbcp.BasicDataSource.Commons DBCP数据源类是org.apache.commons.dbcp.BasicDataSource.

  3. 这两者之间的唯一区别可以在这篇博客中找到.不知道信息是否正确.

  4. 官方Tomcat文档清楚地提到大多数类刚刚被重新命名和重新打包.

所以问题是:哪一个使用哪一个更好

java apache-commons apache-commons-dbcp

68
推荐指数
4
解决办法
5万
查看次数

Spring-Boot:如何设置JDBC池属性,例如最大连接数?

Spring-Boot是一个非常棒的工具,但是当涉及更高级的配置时,文档有点稀疏.如何设置数据库连接池的最大大小等属性?

Spring的引导支持tomcat-jdbc,HikariCP以及Commons DBCP原生的它们都配置了相同的方式吗?

java spring jdbc spring-boot tomcat-jdbc

67
推荐指数
5
解决办法
16万
查看次数

如何使用嵌入式Tomcat容器在Spring Boot中创建JNDI上下文

import org.apache.catalina.Context;
import org.apache.catalina.deploy.ContextResource;
import org.apache.catalina.startup.Tomcat;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.context.embedded.tomcat.TomcatContextCustomizer;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;

@Configuration
@EnableAutoConfiguration
@ComponentScan
@ImportResource("classpath:applicationContext.xml")
public class Application {

    public static void main(String[] args) throws Exception {
        new SpringApplicationBuilder()
                .showBanner(false)
                .sources(Application.class)
                .run(args);
}

@Bean
public TomcatEmbeddedServletContainerFactory tomcatFactory() {
    return new TomcatEmbeddedServletContainerFactory() {
        @Override
        protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(
                Tomcat tomcat) {
            tomcat.enableNaming();
            return super.getTomcatEmbeddedServletContainer(tomcat);
        }
    };
}

@Bean
public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() {
    return new EmbeddedServletContainerCustomizer() …
Run Code Online (Sandbox Code Playgroud)

jndi embedded-tomcat-7 spring-boot

45
推荐指数
4
解决办法
10万
查看次数

Ubuntu Tomcat7 java.lang.ClassNotFoundException:org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory

我正在尝试在Ubuntu 12.X下的Tomcat 7中设置JDBC DataSource,因此我将以下内容添加到context.xml文件中:

<Resource name="jdbc/myDS" auth="Container" type="javax.sql.DataSource"
    maxActive="5" maxIdle="2" maxWait="5000"
    driverClassName="org.postgresql.Driver" username="usr" password="***" url="jdbc:postgresql://localhost:5432/db" />
Run Code Online (Sandbox Code Playgroud)

显然,使用正确且经过测试的数据库用户ID和密码.当我重新启动Tomcat时,我收到此错误:

Feb 05, 2013 1:10:01 PM org.apache.catalina.core.NamingContextListener addResource
WARNING: Failed to register in JMX: javax.naming.NamingException: Could not create resource factory instance [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory]
Run Code Online (Sandbox Code Playgroud)

我用google搜索,发现JDBC驱动程序必须复制到$ CATALINA_HOME/lib文件夹,所以我将postgresql-9.2-1000.jdbc4.jar复制到/ usr/share/tomcat7/lib,但它没有帮助.我尝试将文件复制到其他位置,结果相同.

另一种尝试是将/ usr/share/tomcat7/lib中的tomcat-dbcp.jar符号链接从../../java/tomcat-dbcp-7.0.30.jar更改为../../java/tomcat- dbcp.jar.唯一的变化是我只得到一个警告而不是四个,但数据源也不起作用.

Java版本:

jdoe@sever:~$ java -version
java version "1.7.0_09"
OpenJDK Runtime Environment (IcedTea7 2.3.4) (7u9-2.3.4-0ubuntu1.12.10.1)
OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)
Run Code Online (Sandbox Code Playgroud)

任何提示,都非常欢迎.

干杯.

ubuntu tomcat datasource jdbc tomcat7

28
推荐指数
2
解决办法
5万
查看次数

升级到Tomcat 8时ClassNotFoundException

我最近将我的NetBeans IDE从v7.3升级到v8,突然我的应用程序在连接到DB时在服务器启动时抛出异常.这两个版本的IDE之间的唯一区别是后者使用Tomcat 8.

异常日志:

javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory]
    at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:82)
    at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:841)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:152)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:829)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:152)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:829)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:152)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:829)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:166)
    at org.apache.naming.SelectorContext.lookup(SelectorContext.java:157)
    at javax.naming.InitialContext.lookup(InitialContext.java:411)
    at com.istore.core.listeners.AppContextListener.initdb(AppContextListener.java:44)
    at com.istore.core.listeners.AppContextListener.contextInitialized(AppContextListener.java:27)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4738)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5158)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:697)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:579)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:455)
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1554)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
    at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1428)
    at …
Run Code Online (Sandbox Code Playgroud)

java tomcat netbeans jdbc-pool

8
推荐指数
1
解决办法
3万
查看次数