技巧分享-17周-Spring boot到Weblogic问题

Druid Closed Statement

最近公司项目Spring boot 1.5.8+ Druid 1.1.5 部署到 Weblogic时启动不会报任何错误。
但是发送交易时候,第一个SQL执行不报错,第二SQL语句执行必报一下错误。后续所有SQL语句执行都报一样错误。

java.sql.SQLException: Closed Statement
        at oracle.jdbc.driver.OracleClosedStatement.exitImplicitCacheToActive(OracleClosedStatement.java:2955)
        at oracle.jdbc.driver.OraclePreparedStatementWrapper.exitImplicitCacheToActive(OraclePreparedStatementWrapper.java:1247)
        at com.alibaba.druid.util.OracleUtils.exitImplicitCacheToActive(OracleUtils.java:80)
        at com.alibaba.druid.pool.PreparedStatementPool.get(PreparedStatementPool.java:66)
        at com.alibaba.druid.pool.DruidPooledConnection.prepareStatement(DruidPooledConnection.java:345)

目前通过谷歌和Druid Github的查询,貌似这个是一个BUG。升级到1.1.18版本也没有解决该问题
Github 问题地址

image.png

按照以上这个回答,确实将PSCache设置为false确实就没有报错。
而且通过错误信息也发现是关于PreparedStatement内部出问题了。

java.lang.NoSuchFieldError: defaultReader

部署到Weblogic启动出现一个报错,一般来说启动报错都是包冲突。
可以创建src/main/webapp/WEB-INF/weblogic.xml 让weblogic优先加载项目jar包避免这个问题。



    
        
            org.slf4j
        
    

package-name就是优先加载包名

如果出现一下问题

SEVERE: defaultReader
java.lang.NoSuchFieldError: defaultReader
at com.jayway.jsonpath.spi.json.JsonSmartJsonProvider.(JsonSmartJsonProvider.java:39)
at com.jayway.jsonpath.internal.DefaultsImpl.jsonProvider(DefaultsImpl.java:21)
at com.jayway.jsonpath.Configuration.defaultConfiguration(Configuration.java:174)
at com.jayway.jsonpath.internal.JsonContext.(JsonContext.java:52)
at com.jayway.jsonpath.JsonPath.parse(JsonPath.java:596)

加入一下配置即可

       
net.minidev.json.*                              

而且发现一个问题,一下配置就是全部有限项目的jar包,但是也没有。prefer-web-inf-classes和prefer-application-packages不能同时使用

 
        true        
    

你可能感兴趣的:(技巧分享-17周-Spring boot到Weblogic问题)