Tag: jndi

带有Active Directory的JNDI PartialResultException

我基本上是在Active Directory中走LDAP树。 在每个级别,我查询”(objectClass=*)” 。 当我在根上执行此操作,例如”dc=example,dc=com”我会得到以下exception。 这适用于我们的其他LDAP实例。 出于某种原因,仅在我们的Active Directory服务器上,我得到此exception。 在Active Directory服务器上使用JXplorer时,我也会遇到相同的exception。 从网上阅读我发现有人说你应该打开以下,不知道这意味着什么…所以在我通过查询传递的控件对象( javax.naming.directory.SearchControls )我调用searchControls.setDerefLinkFlag(true) 。 我也尝试将其设置为false ,结果相同。 关于还有什么可能导致这个问题的任何建议? 也许我怎么能解决它? 注意:在这篇文章中,我将baseDn从dc=更改为我公司隐私的示例。 javax.naming.PartialResultException: Unprocessed Continuation Reference(s); remaining name ‘dc=example,dc=com’ at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2820) at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2794) at com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1826) at com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1749) at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:368) at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:338) at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:321) at javax.naming.directory.InitialDirContext.search(InitialDirContext.java:248) at com.motio.pi.gui.panels.useraccess.ldap.LDAPConnector.query(LDAPConnector.java:262) at com.motio.pi.gui.selector.directory.CognosDirectoryBrowserController.expandCognosTreeNode(CognosDirectoryBrowserController.java:99) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) […]

如何使用Java配置在Tomcat 8中配置JNDI DataSource:

如何在Java配置文件中配置JNDI数据源而不是在“web.xml”Servlet上下文中跟随代码片段: DB Connection jdbc/DatabaseName javax.sql.DataSource Container

使用JNDI / Java中的当前用户在LDAP上进行身份validation

我以为我会发现更多关于这个话题,但我没有。 我必须编写一个java应用程序来检查特定用户是哪个用户。 但是要对服务器进行身份validation,我不能要求输入用户名和密码,也不能将其存储在源(或其他文件)中。 有没有办法让JNDI和Java与当前登录的用户进行身份validation?

使用JNDI添加LDAP条目

我正在尝试使用JNDI向LDAP服务器添加条目。 我可以成功读取LDAP服务器中的条目。 但是当我尝试添加新条目时,我收到错误。 我检查了各种方法,但我失败了。 private String getUserAttribs (String searchAttribValue) throws NamingException{ SearchControls ctls = new SearchControls(); ctls.setSearchScope(SearchControls.OBJECT_SCOPE); Attributes matchAttrs = new BasicAttributes(true); matchAttrs.put(new BasicAttribute(“uid”, searchAttribValue)); NamingEnumeration answer = ctx.search(“ou=People,ou=ABCLdapRealm,dc=abcdomain”,matchAttrs); SearchResult item =(SearchResult) answer.next(); // uid userpassword description objectclass wlsmemberof sn cn return item.toString(); } 这工作正常。 然后我向前迈了一步,试图添加一个条目。 代码如下。 public static void bindEntry(DirContext dirContext)throws Exception{ Attributes matchAttrs […]

Spring作为JNDI提供者?

我想使用Spring作为JNDI提供程序。 这意味着我想在Spring上下文中配置一个bean,可以通过JNDI访问它。 这看起来像这样: // rest ommitted 然后,在我的应用程序(比如一个Controller)中,我希望能够通过以下方式获取此bean: Context ctx = new InitialContext(); some.thing.Else bar = (some.thing.Else) ctx.lookup(“w/t/f”); 我怎么能这样做? 我看过XBean,但项目看起来已经过时了(不适用于Spring 3.0.XI不要考虑),而且文档很少。 还有其他选择吗? 如果不是很难做的话,我还会考虑推出自己的jndi提供程序类。 编辑:我应该补充一点,我没有使用JNDI的选项,我有一个我们必须使用的库,需要通过JNDI加载某些组件。 我想使用Spring作为提供者。

使用persistence.xml时将Hibernate 4.0与Tomcat 7一起使用时出现JndiException

我在Tomcat 7上使用Hibernate 4.0和JPA persistence.xml文件。没有Struts,只是直接使用一些Jersey服务的Hibernate。 以下是我遇到的例外情况: Caused by: org.hibernate.service.jndi.JndiException: Unable to lookup JNDI name [jdbc/MyDB] at org.hibernate.service.jndi.internal.JndiServiceImpl.locate(JndiServiceImpl.java:68) at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.configure(DatasourceConnectionProviderImpl.java:116) at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131) at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:223) at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:89) at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131) at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:71) at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2273) at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2269) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1738) at org.hibernate.ejb.EntityManagerFactoryImpl.(EntityManagerFactoryImpl.java:94) at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:904) … 8 more Caused by: javax.naming.NameNotFoundException: Name jdbc is […]

Weblogic:调用没有模式名称的DB2存储过程(属性currentSchema)

我有一个在Weblogic上运行的Java应用程序。 应用程序需要访问DB2数据库中的存储过程,因此JDBC数据源由其JNDI名称配置和访问。 数据源: ClassDriver: com.ibm.db2.jcc.DB2Driver Properties: user=MYUSER DatabaseName=MYDB 以下示例按预期工作。 Context env = null; DataSource pool = null; Hashtable ht = new Hashtable(); ht.put(Context.INITIAL_CONTEXT_FACTORY, “weblogic.jndi.WLInitialContextFactory”); ht.put(Context.PROVIDER_URL,”t3://myserver:7777″); env = new InitialContext(ht); pool = (DataSource) env.lookup(“jdbc/myjndiname”); conn = pool.getConnection(); // call stored procedure with schema name String procName = “MYSCHEMA.MYSTOREDPROCEDURE”; String sql = “CALL ” + procName + […]

与jpa和eclipselink的jndi数据库连接

我尝试在Java中使用JNDI在Tomcat 5.5上结合eclipseLink / JPA设置数据库连接。 我已经在web.xml和context.xml中配置了JNDI资源。 数据库连接与JNDI一起使用,而不使用JPA和eclipseLink。 在为eclipseLink配置persistence.xml之后,我得到了以下exception。 我不知道如何正确配置persistence.xml以使用JNDI数据源进行数据库连接。 例外 WicketMessage: Method onFormSubmitted of interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted at component [MarkupContainer [Component id = loginForm]] threw an exception Root cause: javax.naming.NamingException: This context must be accessed throught a java: URL at org.apache.naming.SelectorContext.parseName(SelectorContext.java:686) at org.apache.naming.SelectorContext.lookup(SelectorContext.java:121) at javax.naming.InitialContext.lookup(InitialContext.java:396) at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:110) at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:94) at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:16 2) at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(Datab aseSessionImpl.java:579) at […]

如何从jdbc连接获取驱动程序类名(不是驱动程序名)

我有一个以下格式的context.xml文件 WEB-INF/web.xml 从这个contex.xml我需要获取我的Driver CLASS名称。 我每次尝试都喜欢 DataSource ds = (DataSource)context.lookup(“java:/jdbc/myDataSource”) 并尝试从连接中获取驱动程序类名称 ds.getConnection().getMetatData().getDriverName() 它只返回Oracle JDBC Driver而不是类名oracle.jdbc.driver.OracleDriver 如何从上下文中获取类名。

在Jetty和Tomcat中运行Web应用程序

我有一个网络应用程序,我在Tomcat上运行生产。 它使用MySQL连接器,但它没有与war捆绑在一起,而是包含在Tomcat的公共lib目录下,因此我可以通过JNDI访问数据源。 我想做一些与Jetty(开发时)类似的东西,更确切地说是Jetty + Maven。 有没有办法让我在通过Maven运行Jetty时在类路径中包含mysql-connector jar(即没有将它捆绑在war文件中)? 另外我应该注意到我在构建过程中使用Maven并将mysql-connector指定为“提供”范围。