gpt4 book ai didi

java - 数据源在 WebLogic 12.2 上无故丢失

转载 作者:行者123 更新时间:2023-12-02 09:54:36 29 4
gpt4 key购买 nike

我们想要在 WebLogic 12.2.1.3 上部署基于 Spring 的应用程序。它使用带有 jdbc/payeshws 数据源的 JDBC 数据源。

当我部署应用程序(使用控制台或 autodeploy 文件夹)并启动应用程序时,一切正常,但如果我停止然后在 WebLogic 控制台中启动应用程序,则会引发异常,根本原因是:

Caused by: javax.naming.NameNotFoundException: Unable to resolve 'jdbc.payeshws'. Resolved 'jdbc'
at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1292)
at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:354)
at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:227)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
at weblogic.jndi.internal.ServerNamingNode.lookup(ServerNamingNode.java:527)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:228)
at weblogic.jndi.internal.ServerNamingNode.lookup(ServerNamingNode.java:527)
at weblogic.jndi.internal.RootNamingNode.lookup(RootNamingNode.java:84)
at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:307)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:435)
at javax.naming.InitialContext.lookup(InitialContext.java:417)
at org.springframework.jndi.JndiTemplate.lambda$lookup$0(JndiTemplate.java:156)
at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:91)
at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:156)
at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:178)
at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:105)
at org.springframework.jdbc.datasource.lookup.JndiDataSourceLookup.getDataSource(JndiDataSourceLookup.java:45)

如果我启动,再次停止 WebLogic,它就会再次正常。

我什至尝试重新启动数据源(通过在 AdminServer 上启用和禁用它),但问题仍然存在。

我们的应用程序在 WebLogic 12.1 + Java 7 上运行没有任何问题。

附注我不确定它是否有帮助,但该应用程序使用 MyBatis 进行数据访问。

最佳答案

我找到了答案here 。我相信这是Spring 5.1.x的一个bug,因为使用Spring 4.2.x没有这样的问题。

我应该将 destroyMethod="" 添加到数据源定义 bean,如

@Bean(destroyMethod = "")
public DataSource jndiDataSource() {
JndiDataSourceLookup lookup = new JndiDataSourceLookup();
return lookup.getDataSource(datasourceJndi);
}

关于java - 数据源在 WebLogic 12.2 上无故丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56090677/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com