草庐IT

spring - 如何使用 Spring 测试模拟的 JNDI 数据源?

我对Spring还很陌生,想知道如何创建使用模拟数据源的JUnit测试以及如何使用JNDI上下文?目前,我的应用程序使用来自tomcat的JNDI上下文来检索连接,并通过该连接从数据库中检索数据。所以我想我需要模拟JNDI调用和数据检索。关于解决这个问题的最佳方法的任何好的指示都会很棒!非常感谢! 最佳答案 您可以使用SimpleNamingContextBuilder使jndi数据源可用于您的测试:SimpleNamingContextBuilderbuilder=newSimpleNamingContextBuilder();b

java - Mysql 没有重新连接 JNDI Tomcat 6

我使用JNDI和Tomcat6来管理Mysql连接,我的Catalina/domain.com/ROOT.xml有:我虽然autoReconnect会完成重新连接到数据库的工作,但它不会,在大约8小时不活动后,我的应用程序吐出丢失与数据库的连接错误。有什么想法吗?谢谢,费多尔 最佳答案 不要使用autoReconnect。它和it'sbeendeprecated有问题.例如,您可以在线程使用连接时发生断开/重新连接事件。在将它们传递给应用程序之前,我会让您的连接池测试连接与testOnBorrow。这是一个例子:

mysql - 如何在 hibernatetool Ant 任务中查找 JNDI 资源

我想用Ant生成我的数据库模式。我正在使用hbm2ddl任务。我将Hibernate与JNDI结合使用。我的hibernate.cfg.xml看起来像:java:comp/env/jdbc/my_apporg.hibernate.dialect.MySQLDialectthread我的$CATALINA_HOME/webapps/myapp/META-INF/context.xml看起来像:在$CATALINA_HOME/webapps/myapp/WEB-INF/web.xml里面我有:DBConnectionjdbc/my_appjavax.sql.DataSourceContai

java - Tomcat 错误 : WARNING: Failed to retrieve JNDI naming context for container

当我尝试启动最近的在Tomcat7上部署Web应用程序。Dec31,201310:11:20AMorg.apache.catalina.deploy.NamingResourcescleanUpWARNING:FailedtoretrieveJNDInamingcontextforcontainer[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/crm]]sonocleanupwasperformedforthatcontainerjavax.naming.NameNotFoundException:

java - 连接池还是数据源?我应该把哪个放在 JNDI 中?

必须在JNDI级别或webapp级别使用连接池更有意义吗?例如,我可以这样简单地创建javax.sql.DataSource:然后在Spring中这样配置池:或者,我可以直接在JNDI本身中配置池:离开这个Spring:在这两种情况下,myDataSourcespringbean都是c3p0连接池数据源,但哪个更好?我认为在JNDI中拥有池是最有意义的,但缺点是您必须将c3p0库推送到servlet容器级别,如果它们当前使用不同的版本,这可能会导致与现有servlet发生冲突。然而,将它放在JNDI中意味着您的应用程序根本不必担心池化。大家怎么看? 最佳答案

java - 容器外 JNDI 数据源

我想在JavaSE应用程序中使用JNDI配置数据源。执行此操作的最佳方法是什么?到目前为止,我遇到了2个项目:ApacheNaming.项目页面有一个配置数据源的具体示例,但看起来该项目太旧了,不再活跃。JBossNS.看起来使用LocalOnlyContextFactory配置仅限本地的JNDI很容易,但我还没有找到任何关于如何实际配置数据源的文档。如果可能,我还想使用JTA事务管理器(使用JOTM?)配置数据源。 最佳答案 为什么要为此使用JNDI?如果您有提供者,这并不是一个糟糕的解决方案,但还有其他选择,例如依赖注入(inj

java - 在 jUnit 中设置 JNDI 数据源

我正在尝试设置一些jUnit测试。我们的数据库由使用JNDI的服务器连接。我们有一个xml描述root.xml中的设置。如何设置jUnit以连接到数据库?我更愿意让它只读取root.xml中的内容,但我愿意以任何可行的方式设置它。 最佳答案 我找到了这个博客:https://blogs.oracle.com/randystuph/entry/injecting_jndi_datasources_for_junit关于H2数据源:http://www.h2database.com/javadoc/org/h2/jdbcx/JdbcCo

java - 带有 Active Directory PartialResultException 的 JNDI

我基本上是在ActiveDirectory中遍历LDAP树。在每个级别我查询"(objectClass=*)".当我在根上执行此操作时,例如"dc=example,dc=com"我得到下面的异常(exception)。这在我们的其他LDAP实例上运行良好。出于某种原因,仅在我们的ActiveDirectory服务器上我得到了这个异常。在我们的ActiveDirectory服务器上使用JXplorer时,我也遇到了同样的异常。通过在线阅读,我发现有人说你应该打开关注,但不确定那是什么意思...所以在我通过查询传递的控件对象(javax.naming.directory.SearchCon

java - 如何从 Web 容器外部查找 JNDI 数据源?

我设置了以下环境:Java1.5Sun应用服务器8.2甲骨文10XEStruts2hibernate我很想知道如何为可以引用应用服务器提供的JNDI数据源的Java客户端(即在Web应用程序之外)编写代码。Sun应用服务器的端口都是默认值。服务器配置中有一个名为jdbc/xxxx的JNDI数据源,但我注意到Web应用程序的Hibernate配置使用的是名称java:comp/env/jdbc/xxxx。到目前为止我看到的大多数示例都涉及如下代码Contextctx=newInitialContext();ctx.lookup("jdbc/xxxx");但似乎我使用了错误的JNDI名称,

java - 了解 JNDI

JNDI就像一张使用类固醇的map,对吧?我使用一个键来查找对对象的引用。另外,什么是InitialContext?我似乎不明白。 最佳答案 从概念上讲,JNDI就像打了兴奋剂的System.getProperties()。System.getProperties()允许您从命令行将String参数传递给您的代码。同样,JNDI允许您在代码之外配置任意对象(例如,在应用程序服务器配置文件中),然后在代码中使用它们。换句话说,它是ServiceLocatorpattern的实现。:您的代码从中央注册中心获取环境配置的服务。与通常使用服