小编mki*_*uac的帖子

WebSphere Liberty + Springboot + Hibernate + JNDI

我正在尝试将小型应用程序从Tomcat迁移到WebSphere。为了做到这一点,我正在从头开始重新构建它,分别解决主要组件。我在webSphere Liberty上的数据访问/ JNDI方面很挣扎。我懂了

javax.naming.NameNotFoundException:javax.naming.NameNotFoundException:java:comp / env / jdbc / test

SERVER.xml

<featureManager>
<feature>webProfile-8.0</feature>
<feature>localConnector-1.0</feature>
<feature>adminCenter-1.0</feature>
<feature>javaee-8.0</feature>
<feature>jndi-1.0</feature>
<feature>concurrent-1.0</feature>
Run Code Online (Sandbox Code Playgroud)

 <dataSource id="test" jndiName="jdbc/test" type="javax.sql.DataSource">
    <jdbcDriver libraryRef="MySQLLib" />
    <properties databaseName="test" serverName="localhost" portNumber="3306" user="user" password="mypassword" />
    <jdbcDriver>
      <library id="MySQLLib">
        <fileset dir="/Library/JDBC/" includes="mysql-connector-java-5.1.14-bin.jar" />
      </library>
    </jdbcDriver>
  </dataSource>
Run Code Online (Sandbox Code Playgroud)

数据配置类

@Configuration
public class DataSourceConfig {

@Resource(lookup = "java:comp/env/jdbc/test", name="java:comp/env/jdbc/test")
private DataSource dataSource;
Run Code Online (Sandbox Code Playgroud)

我也尝试过这种方法:

@Bean
public DataSource dataSource() throws NamingException {
    return (DataSource) new JndiTemplate().lookup("java:comp/env/jdbc/test");
}
Run Code Online (Sandbox Code Playgroud)

spring jndi websphere-liberty spring-boot open-liberty

3
推荐指数
1
解决办法
129
查看次数