标签: jndi

为什么将JNDI用于数据源

任何人都可以帮助解释为什么JNDI应该是公开数据库/ jms等服务的首选方式吗?

我遇到的帖子都谈到了不必加载特定驱动程序管理器的优势,从连接池等方面受益,但通过在属性文件中指定驱动程序管理器并使用反射可以轻松实现.

连接池也可以通过弹簧或其他方式将正确的实现连接到应用程序bean中来实现.

那么为什么使用JNDI会更好呢?

java jndi

46
推荐指数
5
解决办法
3万
查看次数

如何使用嵌入式Tomcat容器在Spring Boot中创建JNDI上下文

import org.apache.catalina.Context;
import org.apache.catalina.deploy.ContextResource;
import org.apache.catalina.startup.Tomcat;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.context.embedded.tomcat.TomcatContextCustomizer;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;

@Configuration
@EnableAutoConfiguration
@ComponentScan
@ImportResource("classpath:applicationContext.xml")
public class Application {

    public static void main(String[] args) throws Exception {
        new SpringApplicationBuilder()
                .showBanner(false)
                .sources(Application.class)
                .run(args);
}

@Bean
public TomcatEmbeddedServletContainerFactory tomcatFactory() {
    return new TomcatEmbeddedServletContainerFactory() {
        @Override
        protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(
                Tomcat tomcat) {
            tomcat.enableNaming();
            return super.getTomcatEmbeddedServletContainer(tomcat);
        }
    };
}

@Bean
public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() {
    return new EmbeddedServletContainerCustomizer() …
Run Code Online (Sandbox Code Playgroud)

jndi embedded-tomcat-7 spring-boot

45
推荐指数
4
解决办法
10万
查看次数

名称[jdbc/mydb]未绑定在此Context中

我看到这个问题已经提出好几次了,我经历了所有这些问题.但我仍然无法解决我的问题.

任何人都可以帮我确定我做错了什么吗?

我尝试访问database.jsp时收到以下错误消息:

    HTTP Status 500 - An exception occurred processing JSP page /database.jsp at line 24

type Exception report

message An exception occurred processing JSP page /database.jsp at line 24

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /database.jsp at line 24

21:         <%
22:                 Context init = new InitialContext();
23:                 Context env = (Context) init.lookup("java:/comp/env/");
24:                 DataSource data = (DataSource) env.lookup("jdbc/mydb");
25:                 Connection conn …
Run Code Online (Sandbox Code Playgroud)

jndi derby java-ee tomcat7

41
推荐指数
1
解决办法
13万
查看次数

把什么放到jos-data-persistence.xml中?

我应该把什么样的价值为<jta-data-source>我的persistence.xml

在glassfish管理面板中,我创建了一个数据源名称"abcDS".在我jndi.properties(内部src/test/resources)我定义它像这样:

[...]
abcDS=new://Resource?type=DataSource
abcDS.JdbcDriver=org.hsqldb.jdbcDriver
abcDS.JdbcUrl=jdbc:hsqldb:mem:testdb
abcDS.JtaManaged=true
[...]
Run Code Online (Sandbox Code Playgroud)

我应该放persistence.xml什么?我发现了很多在网络变体,如:"jdbc/abcDS","java:/abcDS","abcDS".哪一个是对的?这有什么规则吗?我知道它与JNDI有关,但......

我正在尝试在单元测试中创建EMF:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("abc");
Run Code Online (Sandbox Code Playgroud)

这就是我在日志中得到的:

[...]
SEVERE: Could not find datasource: abcDS javax.naming.NameNotFoundException: 
    Name "abcDS" not found.
at org.apache.openejb.core.ivm.naming.IvmContext.federate(IvmContext.java:193)
at org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:150)
at org.apache.openejb.core.ivm.naming.ContextWrapper.lookup(ContextWrapper.java:115)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
[...]
Run Code Online (Sandbox Code Playgroud)

java ejb jpa jndi openejb

34
推荐指数
1
解决办法
8万
查看次数

LDAP如何在Java中搜索/验证此LDAP

我正在玩LDAP和Java搜索.这是我的LDIF导出与一个简单的组织

version: 1

dn: dc=example,dc=com
objectClass: organization
objectClass: dcObject
objectClass: top
dc: example
o: MyOrganization
description: Test Description

dn: ou=people, dc=example,dc=com
objectClass: organizationalUnit
objectClass: top
ou: people
description: All users in demo company

dn: cn=Johnny Doe,ou=people,dc=example,dc=com
objectClass: organizationalPerson
objectClass: person
objectClass: inetOrgPerson
objectClass: top
cn: Johnny Doe
sn: Johnny
homephone: 123-456-7890
mail: johnny@johnny.com
ou: Development
uid: jjohnny
userpassword:: johnny

dn: cn=Samuel Johnson,ou=people,dc=example,dc=com
objectClass: organizationalPerson
objectClass: person
objectClass: inetOrgPerson
objectClass: top
cn: Samuel Johnson
sn: Samuel
homephone: 123-456-7890
mail: sam@ssam.com
ou: …
Run Code Online (Sandbox Code Playgroud)

java jndi ldap

28
推荐指数
3
解决办法
13万
查看次数

配置hibernate以通过JNDI Datasource连接到数据库

大家好我正在使用Hibernate + Struts2 + Tomcat6 + Mysql作为我的J2EE框架.我一直在使用hibernate的内置连接池机制,但结果证明mysql在8小时后关闭它的连接是有问题的.无论如何,我google了一下,发现我应该通过JNDI数据源获得我的连接,但我无法就此达成一个完整的教程.我应该采取什么措施呢?请给我足够的细节,我对此有点新意.这是我的hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>

    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">
            jdbc:mysql://localhost/hposg?characterEncoding=UTF-8
    </property>
    <property name="connection.username">root</property>
    <property name="connection.password"></property>
    <property name="show_sql">true</property>
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="current_session_context_class">thread</property>
    <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
    <property name="hbm2ddl.auto">update</property>

    <property name="hibernate.max_fetch_depth">3</property>

    <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
    <property name="hibernate.c3p0.acquire_increment">2</property>
    <property name="hibernate.c3p0.idle_test_period">300</property>
    <property name="hibernate.c3p0.timeout">1800</property>
    <property name="hibernate.c3p0.max_size">25</property>
    <property name="hibernate.c3p0.min_size" >3</property>
    <property name="hibernate.c3p0.max_statement">0</property>
    <property name="hibernate.c3p0.preferredTestQuery">select 1;</property>
    <property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
    <property name="hibernate.c3p0.validate">true</property>

      <!-- Mapping files -->

      <mapping resource="com/hposg/hibernate/resources/Player.hbm.xml"/>
      <mapping resource="com/hposg/hibernate/resources/Game.hbm.xml"/>
      ...

  </session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)

我也尝试了这个,但它没有成功:在WebContent/META-INF中创建一个context.xml,包含:

<Context path="" docBase="../RSGames" debug="0" …
Run Code Online (Sandbox Code Playgroud)

java hibernate jndi connection-pooling

28
推荐指数
2
解决办法
12万
查看次数

Tomcat vs Weblogic JNDI Lookup

我们使用的Weblogic服务器已配置为允许JNDI数据源名称,如"appds".

对于开发(localhost),我们可能正在运行Tomcat,并且当在server.xml的<context>部分中声明时,Tomcat将在JNDI树中的"java:comp/env/jdbc/*"上挂起JNDI数据源.

问题:在Weblogic中,JNDI查找是"appds",而在Tomcat中,似乎我必须提供正式的"java:comp/env/jdbc/appds".我担心Tomcat版本是一个隐含的标准,但不幸的是,我不能改变Weblogic的配置...所以这意味着我们最终得到两个不同的spring配置文件(我们使用的是spring 2.5)来促进不同的环境.

有没有一种优雅的方式来解决这个问题.我可以直接在Tomcat中查看JNDI名称吗?Spring可以在两个地方都有名字和外观吗?谷歌搜索或建议会很棒.

java tomcat weblogic jndi java-ee

25
推荐指数
2
解决办法
5万
查看次数

获取EntityManagerFactory的最佳实践

在Web应用程序(jsp/servlets)中获取EntityManagerFactory的最佳方法是什么?这是一个好方法何时应该创建/打开EntityManagerFactory实例?或者从JNDI或其他东西获得它更好吗?

java jpa jndi

23
推荐指数
1
解决办法
4万
查看次数

了解JNDI

JNDI就像一张关于类固醇的地图吧?我使用一个键来查找对象的引用.什么是InitialContext?我似乎没有得到这个想法.

java jndi

22
推荐指数
2
解决办法
5221
查看次数

java:comp/env和java:global之间有什么关系?

java:comp/envjava:global(关于3.1规范)之间的关系是什么?
似乎java:comp/env包含特定于EJB引用的包含.在这种情况下,"具体"是什么意思?

lookup ejb jndi conventions java-ee

22
推荐指数
1
解决办法
1万
查看次数