WebApp(Tomcat-jdbc)池化数据库连接抛弃exception

我已经浏览了一段时间,并在此过程中咀嚼我的帽子,但找不到与我的问题完全匹配。 简而言之,我在60秒不活动后获得了极好的堆栈跟踪(org.apache.tomcat.jdbc.pool.ConnectionPool放弃),这是几个服务器端线程的正常行为。 我正在使用Tomcat JDBC Connection Pooling(org.apache.tomcat.jdbc.pool.DataSource) 堆栈跟踪: 2012年10月29日下午8:55:50 org.apache.tomcat.jdbc.pool.ConnectionPool放弃 警告:连接已被放弃PooledConnection [com.mysql.jdbc.JDBC4Connection@1ad2916]:java.lang.Exception 在org.apache.tomcat.jdbc.pool.ConnectionPool.getThreadDump(ConnectionPool.java:967) 在org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:721) 在org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:579) 在org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:174) at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:111) 在com.getsom.getConnection(DAO.java:1444) 在com.getsom.PreparedConnection。(PreparedConnection.java:48) 在com.getsom.Alarms.run(Alarms.java:492) 我的PoolProperties配置如下: PoolProperties pp = new PoolProperties(); pp.setUrl( someValidUrl); pp.setDriverClassName(“com.mysql.jdbc.Driver”); pp.setUsername( someUser); pp.setPassword( somePassword); pp.setJmxEnabled( true); pp.setTestWhileIdle( true); pp.setTestOnBorrow( true); pp.setValidationQuery( “SELECT 1”); pp.setTestOnReturn( false); pp.setValidationInterval(30000); pp.setTimeBetweenEvictionRunsMillis(30000); pp.setMaxActive(100); pp.setInitialSize(10); pp.setMaxWait(10000); pp.setMinEvictableIdleTimeMillis(30000); pp.setMinIdle(10); pp.setLogAbandoned(true); pp.setRemoveAbandoned(true); pp.setRemoveAbandonedTimeout(60); pp.setJdbcInterceptors(“org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;”+ […]

使用Java 7在JTextPane中使用样式文本进行奇怪的文本包装

我有两个不同的编辑器使用JTextPane和Java 7中的奇怪错误,这些错误在以前的JVM版本中没有出现。 它出现在包含样式文本或组件的长行中。 这是一个演示此错误的示例。 在此示例中,每次插入字符时,都会对所有文本应用默认样式。 我用JDK 1.7.0_04测试了它。 import java.awt.BorderLayout; import javax.swing.*; import javax.swing.event.*; import javax.swing.text.*; public class BugWrapJava7 extends JFrame { JTextPane jtp; StyledDocument doc; public BugWrapJava7() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new BorderLayout()); jtp = new JTextPane(); add(jtp, BorderLayout.CENTER); jtp.setText(“\ntype some text in the above empty line and check the wrapping behavior”); doc = jtp.getStyledDocument(); doc.addDocumentListener(new DocumentListener() […]

计算由Java代码创建的String对象

以下代码创建了多少个String对象? String x = new String(“xyz”); String y = “abc”; x = x + y; 我访问了很多网站,其中一些人说这行代码创建了3个对象,有些人说它创建了4个。我只是想知道在执行这行代码后创建了多少个对象。

将Hibernate 5.2与Spring框架4.x集成

我正在使用最新稳定的Spring版本( 4.2.6.RELEASE )。 将Hibernate从5.1升级到5.2并将hibernate-entitymanager依赖更改为hibernate-core hibernate文档后: https : //github.com/hibernate/hibernate-orm/wiki/Migration-Guide—5.2 我没有收到任何编译错误,但我的所有测试都失败了这个堆栈跟踪: Jun 06, 2016 12:00:38 PM org.springframework.test.context.TestContextManager beforeTestMethod WARNING: Caught exception while allowing TestExecutionListener [org.springframework.test.context.transaction.TransactionalTestExecutionListener@548b7f67] to process ‘before’ execution of test method [public void com.rh.cores.architecture.tests.units.person.PersonTest.add_iranianNaturalPersonDateIsInvalid_preventSaving()] for test instance [com.rh.cores.architecture.tests.units.person.PersonTest@7f9e8421] org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is java.lang.NoSuchMethodError: org.hibernate.Session.getFlushMode()Lorg/hibernate/FlushMode; at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:431) at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373) at […]

如何在java应用程序上下文中使用spring MVC的标记?

我创建了“for now”一个简单而基本的spring web应用程序。 我习惯将部署描述符作为简单的web.xml文件,然后将应用程序上下文作为xml文件。 虽然,现在我想尝试仅使用java文件创建我的整个Spring Web应用程序。 因此,我创建了我的WebApplicationInitializer,而不是正常的部署描述符,以及使用@Configuration注释的应用程序上下文。 部署描述符 package dk.chakula.config; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRegistration.Dynamic; import org.springframework.web.WebApplicationInitializer; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.servlet.DispatcherServlet; /** * * @author martin * @since 12-1-2012 * @version 1.0 */ public class Initializer implements WebApplicationInitializer { @Override public void onStartup(ServletContext servletContext) throws ServletException { registerDispatcherServlet(servletContext); } private void registerDispatcherServlet(final […]

使用java8流创建另一个对象列表

我正在尝试理解Java 8流。 我有两节课: public class UserMeal { protected final LocalDateTime dateTime; protected final String description; protected final int calories; public UserMeal(LocalDateTime dateTime, String description, int calories) { this.dateTime = dateTime; this.description = description; this.calories = calories; } public LocalDateTime getDateTime() { return dateTime; } public String getDescription() { return description; } public int getCalories() { […]

RxJava和观察者代码的并行执行

我使用RxJava Observable api获得以下代码: Observable observable = fileProcessor.processFileObservable(processedFile.getAbsolutePath()); observable .buffer(10000) .observeOn(Schedulers.computation()) .subscribe(recordInfo -> { _logger.info(“Running stage2 on thread with id : ” + Thread.currentThread().getId()); for(Info info : recordInfo) { // some I/O operation logic } }, exception -> { }, () -> { }); 我的期望是,在指定了计算调度程序之后,观察代码即subscribe()方法中的代码将并行执行。 相反,代码仍然在单个线程上顺序执行。 如何使用RxJava api使代码并行运行。

EJB 3.1 @EJB注入POJO

今天下午成为一个完整的大菱鲆,似乎无法在任何地方找到答案。 使用新的EJB 3.1规范是否可以将EJB注入pojo? 我知道在EJB 3.0中,@ EJB注释可用于注入EJB,但这对简单的pojos不起作用。 如果不是,我必须在JNDI中查看bean,因为我知道你不能简单地使用new关键字。 提前致谢。 卡尔

套接字发送和接收字节数组

在服务器中,我通过Java套接字向客户端发送了一个字节数组 byte[] message = … ; DataOutputStream dout = new DataOutputStream(client.getOutputStream()); dout.write(message); 如何从客户端接收此字节数组?

如何按升序对文件名进行排序?

我在一个文件夹中有一组文件,所有文件都以类似的名字开头,除了一个。 这是一个例子: Coordinate.txt Spectrum_1.txt Spectrum_2.txt Spectrum_3.txt . . . Spectrum_11235 我能够列出指定文件夹中的所有文件,但列表不是频谱号的升序。 示例:执行程序时,我得到以下结果: Spectrum_999.txt Spectrum_9990.txt Spectrum_9991.txt Spectrum_9992.txt Spectrum_9993.txt Spectrum_9994.txt Spectrum_9995.txt Spectrum_9996.txt Spectrum_9997.txt Spectrum_9998.txt Spectrum_9999.txt 但这个顺序不正确。 Spectrum_999.txt之后应该有Spectrum_1000.txt文件。 有人可以帮忙吗? 这是代码: import java.io.*; import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class FileInput { public void userInput() { Scanner scanner = new Scanner( System.in ); System.out.println(“Enter the file path: “); […]