我正在尝试将小型应用程序从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)