相关疑难解决方法(0)

Tomcat 8上使用jTDS JDBC驱动程序的AbstractMethodError

我正在将Web应用程序(WAR)部署到Tomcat 8 Web容器.

WAR在'/ WEB-INF/lib'目录中包含以下jTDS JDBC驱动程序:

<dependency org="net.sourceforge.jtds" name="jtds" rev="1.3.1" />
Run Code Online (Sandbox Code Playgroud)

(文件是:) jtds-1.3.1.jar.

这是资源的定义方式META-INF/context.xml:

<Resource name="jdbc/jtds/sybase/somedb"
          auth="Container"
          type="javax.sql.DataSource"
          driverClassName="net.sourceforge.jtds.jdbc.Driver"
          url="jdbc:jtds:sybase://localhost:2501/somedb"
          username="someuser" password="somepassword"
/>
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我以正常方式获取javax.sql.DataSource:

InitialContext cxt = new InitialContext();
if ( cxt == null ) {
    throw new RuntimeException("Uh oh -- no context!");
}
DataSource ds = (DataSource) cxt.lookup( lookupName );
Run Code Online (Sandbox Code Playgroud)

我进一步验证(通过打印)DataSource对象ds是期望的类型:

org.apache.tomcat.dbcp.dbcp2.BasicDataSource
Run Code Online (Sandbox Code Playgroud)

...但是当我尝试从中获取连接时:

Connection conn = ds.getConnection();
Run Code Online (Sandbox Code Playgroud)

......我得到以下描述:

java.lang.AbstractMethodError
net.sourceforge.jtds.jdbc.JtdsConnection.isValid(JtdsConnection.java:2833)
org.apache.tomcat.dbcp.dbcp2.DelegatingConnection.isValid(DelegatingConnection.java:924)
org.apache.tomcat.dbcp.dbcp2.PoolableConnection.validate(PoolableConnection.java:282)
org.apache.tomcat.dbcp.dbcp2.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:359)
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2316)
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2299)
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2043)
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1543)
Run Code Online (Sandbox Code Playgroud)

是什么赋予了?

jtds tomcat8

11
推荐指数
2
解决办法
7684
查看次数

使用JTDS在Spring Boot中配置HikariCP

我想在我现有的Web应用程序中添加一个连接池,它是使用Spring Boot 1.5.1创建的.

数据源配置在application.properties中进行,如下所示:

spring.datasource.url=jdbc:jtds:sqlserver://localhost:1433;databaseName=MyDatabase;instance=SQLServer2014;
spring.datasource.username=myuser
spring.datasource.password=passwd
spring.datasource.driver-class-name=net.sourceforge.jtds.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
Run Code Online (Sandbox Code Playgroud)

我不需要进行任何进一步的配置,这就足够了.

虽然参数显示在Spring 官方文档中,但在Spring Boot 文档中也没有明确说明.

所以,我一直在那里寻找解决方案(这一个,这也是 ......).

我做了几次试验,但每次运行应用程序时,都会抛出有关HikariCP的例外情况.

添加时spring.datasource.type=com.zaxxer.hikari.HikariDataSource,抛出以下异常:

2017-02-15 12:12:23.955  WARN 14844 --- [           main] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is java.lang.AbstractMethodError
2017-02-15 12:12:23.964  INFO 14844 --- [           main] utoConfigurationReportLoggingInitializer :
Error starting ApplicationContext. To display …
Run Code Online (Sandbox Code Playgroud)

java spring jtds spring-boot hikaricp

4
推荐指数
2
解决办法
6587
查看次数

标签 统计

jtds ×2

hikaricp ×1

java ×1

spring ×1

spring-boot ×1

tomcat8 ×1