Weblogic 异常:javax.naming.NameNotFoundException:无法解析 'jdbc.payment'。已解决'jdbc';剩余姓名 'payment'
Weblogic exception : javax.naming.NameNotFoundException: Unable to resolve 'jdbc.payment'. Resolved 'jdbc'; remaining name 'payment'
当我从 spring 引导应用程序的 weblogic 中查找 jndi 数据源时出现此异常...仅在一次成功部署后...我的意思是从第二次部署 on.If 我重新启动容器,它仅适用于第一次部署。
原因:javax.naming.NameNotFoundException:无法解析 'jdbc.payment'。已解决'jdbc';剩余姓名 'payment'
具有相同名称并附加到管理服务器的数据源。
我使用 docker 图像:store/oracle/weblogic:12.2.1.4-dev 和环境变量 PRODUCTION_MODE=dev
更新:如果我从服务器上分离数据源然后重新连接它然后启动 war,它再次成功运行了 ò
更新:切换到本地安装的 weblogic 不再 docker 并且该行为仍然发生
这是一个 spring 问题...与 weblogic 无关。
在 war 关机时,Spring 从服务器 JNDI 树中删除了数据源,但是数据源仍在服务器上 运行。
重新创建甚至重新附加数据源到目标服务器的操作,将其重新添加到 JNDI 树中。
解决此行为的解决方法是防止spring调用数据源bean的销毁方法
@Primary
@Bean(name = "dataSource",destroyMethod = "")
@Profile("weblogic")
public DataSource dataSourceWeblogic() throws NamingException {
JndiTemplate jndiTemplate = new JndiTemplate();
InitialContext ctx = (InitialContext) jndiTemplate.getContext();
return (javax.sql.DataSource) ctx.lookup(jndi);
}
当我从 spring 引导应用程序的 weblogic 中查找 jndi 数据源时出现此异常...仅在一次成功部署后...我的意思是从第二次部署 on.If 我重新启动容器,它仅适用于第一次部署。
原因:javax.naming.NameNotFoundException:无法解析 'jdbc.payment'。已解决'jdbc';剩余姓名 'payment'
具有相同名称并附加到管理服务器的数据源。
我使用 docker 图像:store/oracle/weblogic:12.2.1.4-dev 和环境变量 PRODUCTION_MODE=dev
更新:如果我从服务器上分离数据源然后重新连接它然后启动 war,它再次成功运行了 ò
更新:切换到本地安装的 weblogic 不再 docker 并且该行为仍然发生
这是一个 spring 问题...与 weblogic 无关。
在 war 关机时,Spring 从服务器 JNDI 树中删除了数据源,但是数据源仍在服务器上 运行。 重新创建甚至重新附加数据源到目标服务器的操作,将其重新添加到 JNDI 树中。
解决此行为的解决方法是防止spring调用数据源bean的销毁方法
@Primary
@Bean(name = "dataSource",destroyMethod = "")
@Profile("weblogic")
public DataSource dataSourceWeblogic() throws NamingException {
JndiTemplate jndiTemplate = new JndiTemplate();
InitialContext ctx = (InitialContext) jndiTemplate.getContext();
return (javax.sql.DataSource) ctx.lookup(jndi);
}