小编MFH*_*MFH的帖子

最后块是否真的可靠关闭资源?更新了代码段

我想知道finally块是否真的可靠关闭资源; 比如,数据库连接?

根据我们的架构师,最后块关闭数据库连接是不可靠的,尤其是在Web应用程序场景中.

根据该理论,无论代码的执行状态如何,最后块必须在逻辑流程的末尾运行.最后块是最佳实践.

我正在研究使用JDK-1.4,纯SQL查询和从连接池获取数据库连接的Web应用程序项目.大多数SQL语句都是嵌套语句,单个方法包含多个Statement和ResultSet对象.

在这种情况下,我对最终阻止持怀疑态度,因为根据测试,最后阻止不释放资源而是Web应用程序正在获取更多连接.最后,Tomcat 5.5每隔两三个小时就被吊死一次.

然后,我删除了finally块并在执行SQL操作之后和catch块中释放资源.之后,Web应用程序正在完美地释放资源,并且tomcat不再挂起.

因此,我对finally块理论感到困惑.

这是代码片段,请告知编码技术是否错误:

        ... .. . . .. . .. . . .. .. . 
    ........ . .. . . ... . .. . .

    Connection dbCon = null;
    Statement stmt1 = null;
    ResultSet rs1 = null;

    try {
        dbCon = DB.getConnection();

        stmt1 = dbCon.createStatement();            
        rs1  = stmt1.executeQuery("sql Query as String");

        while(rs1.next()){

            String col1 = rs1.getString("DB_COL_1");
            int col2 = rs1.getInt("DB_COL_2");
            String col3 = rs1.getString("DB_COL_3");

            if(col3 != null){   

                Statement stmt2 = null;
                ResultSet rs2 …
Run Code Online (Sandbox Code Playgroud)

java web-applications jdbc

2
推荐指数
1
解决办法
1138
查看次数

jersey-spring3(2.25.1)在jetty-9.3.3中生成"上下文启动失败"错误

我在Jetty-9.3.3环境中使用Jersey-2.25.1和Spring框架4.3.5.我的操作系统是Centos 7和JDK 8.在部署期间,我收到以下错误:

注意:仅当在pom.xml中添加了jersey-spring3依赖项时,才会发生以下错误.

Failed startup of context o.e.j.w.WebAppContext@5d37aa0f{/test-service,file:///.../test-service/,STARTING}
java.lang.RuntimeException: Error scanning entry module-info.class from jar file:///.../test-service/WEB-INF/lib/asm-all-repackaged-2.5.0-b32.jar
        at org.eclipse.jetty.annotations.AnnotationParser.parseJar(AnnotationParser.java:925)
        at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:842)
        at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:163)
        at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:545)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
        at java.lang.Thread.run(Thread.java:745)
Caused by:
java.lang.IllegalArgumentException
        at org.objectweb.asm.ClassReader.<init>(Unknown Source)
        at org.objectweb.asm.ClassReader.<init>(Unknown Source)
        at org.objectweb.asm.ClassReader.<init>(Unknown Source)
        at org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:988)
        at org.eclipse.jetty.annotations.AnnotationParser.parseJarEntry(AnnotationParser.java:970)
        at org.eclipse.jetty.annotations.AnnotationParser.parseJar(AnnotationParser.java:921)
        at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:842)
        at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:163)
        at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:545)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
        at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)

Jetty的/lib/annotations/asm-5.0.1.jar和asm-commons-5.0.1.jar或者jersey-spring3.jar有问题吗?

java spring jetty jersey maven-3

2
推荐指数
1
解决办法
1825
查看次数

标签 统计

java ×2

jdbc ×1

jersey ×1

jetty ×1

maven-3 ×1

spring ×1

web-applications ×1