источник данных теряется на WebLogic 12.2 без какой-либо причины - PullRequest
0 голосов
/ 11 мая 2019

Мы хотим развернуть приложение на основе Spring в WebLogic 12.2.1.3. Он использует источник данных JDBC с источником данных jdbc / payeshws.

Когда я развертываю приложение (используя консоль или папку автоматического развертывания) и запускаю приложение, все идет хорошо, но если я остановлю и затем запущу приложение в консоли 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 без каких-либо проблем.

P.S. Я не уверен, поможет ли это, но приложение использует MyBatis для доступа к данным.

1 Ответ

1 голос
/ 12 мая 2019

Я нашел ответ здесь .Я считаю, что это ошибка Spring 5.1.x, потому что не было такой проблемы при использовании Spring 4.2.x.

Я должен добавить destroyMethod="" в bean-компонент определения источника данных, как

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