Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么是JNDI呢´;s无法从数据源中识别bean_Java_Mysql_Spring Data Jpa_Datasource_Jndi - Fatal编程技术网

Java 为什么是JNDI呢´;s无法从数据源中识别bean

Java 为什么是JNDI呢´;s无法从数据源中识别bean,java,mysql,spring-data-jpa,datasource,jndi,Java,Mysql,Spring Data Jpa,Datasource,Jndi,您好,我想将DataSource从Server.xml与Liberty分离,并在类中显式包含连接参数,如以下链接所示,但当我添加@Resource注释时,会出现以下问题: 我的连接器是mysql 没有名为“jndi/mysql”的bean可用:在jndi环境中找不到 基于该主题的任何贡献或帮助都将受到好评。问候 我曾经尝试过一种方法,在这种方法中,我使用正确的符号@bean和@Primary返回bean的数据源,但是日志仍然是一样的 @DataSourceDefinition(

您好,我想将DataSource从Server.xml与Liberty分离,并在类中显式包含连接参数,如以下链接所示,但当我添加@Resource注释时,会出现以下问题: 我的连接器是mysql

没有名为“jndi/mysql”的bean可用:在jndi环境中找不到

基于该主题的任何贡献或帮助都将受到好评。问候

我曾经尝试过一种方法,在这种方法中,我使用正确的符号@bean和@Primary返回bean的数据源,但是日志仍然是一样的

 @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自由服务器***************************//


webProfile-7.0
localConnector-1.0


我希望控制台打印消息Conexion Exitosa可以将此数据源用于另一个模块:


错误日志:由以下原因引起:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有名为“jndi/mysql”的bean可用:在jndi环境中找不到

是否使用WebSphere Liberty作为应用程序服务器?如果是这样的话,数据源在哪里注册?目前,我已经在server.xml中注册了,但我尝试为java类方式制定下一个约定。似乎您正在使用一个名称注册数据源,并使用另一个名称查找它。也许您应该将
@Resource(lookup=“jndi/mysql”)
更改为
@Resource(lookup=“java:comp/env/jdbc/mysql”)
。另外,请在web.xml文件中包含数据源定义。它应该有相同的名称。此外,我认为在应用程序中定义数据源是一种不好的做法。关键是要将数据库定义与应用程序分离,但这两者都有牵连。异常消息是:com.ibm.ws.container.service.state.StateChangeException:com.ibm.ws.cdi.cdieException:com.ibm.wsspi.injectionengine.InjectionException:java.sql.SQLNonTransientException:J2CA8022E:Application moii-srv war没有任何为数据源java:comp/env/jdbc提供com.mysql.cj.jdbc.Driver的共享库MySQL您是否使用WebSphere Liberty作为应用程序服务器?如果是这样的话,数据源在哪里注册?目前,我已经在server.xml中注册了,但我尝试为java类方式制定下一个约定。似乎您正在使用一个名称注册数据源,并使用另一个名称查找它。也许您应该将
@Resource(lookup=“jndi/mysql”)
更改为
@Resource(lookup=“java:comp/env/jdbc/mysql”)
。另外,请在web.xml文件中包含数据源定义。它应该有相同的名称。此外,我认为在应用程序中定义数据源是一种不好的做法。关键是要将数据库定义与应用程序分离,但这两者都有牵连。异常消息是:com.ibm.ws.container.service.state.StateChangeException:com.ibm.ws.cdi.cdieException:com.ibm.wsspi.injectionengine.InjectionException:java.sql.SQLNonTransientException:J2CA8022E:Application moii-srv war没有任何为数据源java:comp/env/jdbc提供com.mysql.cj.jdbc.Driver的共享库mysql
<!-- 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>