Почему JNDI не распознает бин из источника данных - PullRequest
0 голосов
/ 15 апреля 2019

Здравствуйте, я хочу отделить DataSource от Server.xml от Liberty и явно включить в класс параметры подключения, как показано в следующей ссылке, но при добавлении аннотации @Resource возникает следующая проблема: My Connector itMysql

Бин с именем 'jndi / mysql' недоступен: не найден в среде JNDI

Любой вклад или помощь, основанные на теме, будут приняты хорошо.С уважением

Я пытался сделать метод, в котором я возвращаю источник данных bean-компонента с правильными обозначениями @Bean и @Primary, но журнал все тот же

 @DataSourceDefinition(
                name= "java:comp/env/jdbc/mysql", 
                className = "com.mysql.jdbc.Driver",
                url = "jdbc:mysql://localhost/mini_blog_es2?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC", 
                user = "root",
                password = "tuna"
                ) })

`public class JPAConfigDatabase  { 
@Resource(lookup = "jndi/mysql")
    private DataSource dataSource; 
`

    // Get Method

    @Primary
        @Bean(name = "dataSource")
        public DataSource getDataSource()  {
            DataSource data = null;
            try {
                data = (DataSource) new JndiTemplate().lookup("jndi/mysql");
                System.out.println("Conexion Exitosa");
            } catch (Exception e) {
                System.out.println("NO JALO" + e.getMessage());
            }   
            return data;
        }
    }

`

/ ************************* SERVER.xml Liberty Server *************************** //

<!-- Enable features -->
<featureManager>
    <feature>webProfile-7.0</feature>
    <feature>localConnector-1.0</feature>
</featureManager>

<!-- To access this server from a remote client add a host attribute to 
    the following element, e.g. host="*" -->
<httpEndpoint httpPort="9080" httpsPort="9443" id="defaultHttpEndpoint"/>

<!-- Automatically expand WAR files and EAR files -->
<applicationManager autoExpand="true"/>

<library id="JTDS">
    <fileset dir="resources/sqlserver" includes="mysql-connector-java-6.0.3"/>
</library>

<webApplication id="moii-srv-war" location="moii-srv-war-0.0.1-SNAPSHOT.war" name="moii-srv-war">
<classloader commonLibraryRef="JTDS"/>
 </webApplication>

Я ожидал, что на консоли будет напечатано сообщение Conexion Exitosa toможно использовать этот источник данных для другого модуля:

Журнал ошибок: вызвано: org.springframework.beans.factory.NoSuchBeanDefinitionException: недоступен компонент с именем jndi / mysql: не найден в среде JNDI

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...