[JAVA-2997] JNDI LOOK UP ISSUE Created: 28/Sep/18 Updated: 11/Sep/19 Resolved: 28/Sep/18 |
|
| Status: | Closed |
| Project: | Java Driver |
| Component/s: | None |
| Affects Version/s: | 3.8.1 |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | KIMCHOONGHWAN | Assignee: | Unassigned |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
tomcat8.5 / spring version 5.0.5.RELEASE |
||
| Description |
|
error comment j*ava.lang.IllegalArgumentException: The local resource link [mongodb/MyMongoClient"] that refers to global resource [mongodb/MyMongoClient"] was expected to return an instance of [com.mongodb.MongoClient] but returned an instance of [com.mongodb.MongoClient]java.lang.IllegalArgumentException: The local resource link [mongodb/MyMongoClient"] that refers to global resource [mongodb/MyMongoClient"] was expected to return an instance of [com.mongodb.MongoClient] but returned an instance of [com.mongodb.MongoClient] at* org.apache.naming.factory.ResourceLinkFactory.getObjectInstance(ResourceLinkFactory.java:163) at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321) at org.apache.naming.NamingContext.lookup(NamingContext.java:840) at org.apache.naming.NamingContext.lookup(NamingContext.java:173) at com.wjthinkbig.bookclub.ugc.config.MongoConfig.mongoDbFactory(MongoConfig.java:90) at com.wjthinkbig.bookclub.ugc.config.MongoConfig$$EnhancerBySpringCGLIB$$7b5e8cdc.CGLIB$mongoDbFactory$1(<generated>) at com.wjthinkbig.bookclub.ugc.config.MongoConfig$$EnhancerBySpringCGLIB$$7b5e8cdc$$FastClassBySpringCGLIB$$270bed08.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361) at com.wjthinkbig.bookclub.ugc.config.MongoConfig$$EnhancerBySpringCGLIB$$7b5e8cdc.mongoDbFactory(<generated>) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:582) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1247) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1096) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:535) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.resolveBeanReference(ConfigurationClassEnhancer.java:392) at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:364) at com.wjthinkbig.bookclub.ugc.config.MongoConfig$$EnhancerBySpringCGLIB$$7b5e8cdc.mongoDbFactory(<generated>) at com.wjthinkbig.bookclub.ugc.config.MongoConfig.mongoTemplate(MongoConfig.java:129) at com.wjthinkbig.bookclub.ugc.config.MongoConfig$$EnhancerBySpringCGLIB$$7b5e8cdc.CGLIB$mongoTemplate$0(<generated>) at com.wjthinkbig.bookclub.ugc.config.MongoConfig$$EnhancerBySpringCGLIB$$7b5e8cdc$$FastClassBySpringCGLIB$$270bed08.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361) at com.wjthinkbig.bookclub.ugc.config.MongoConfig$$EnhancerBySpringCGLIB$$7b5e8cdc.mongoTemplate(<generated>) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:582) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1247) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1096) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:535) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1135) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1062) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:583) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:372) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1341) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:572) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:409) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:291) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4743) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5207) ------------------------------------------------------------------------- MY JOB STEP
step1. tomcat lib folder add >> mongo-java-driver-3.6.4.jar ------------------------------------------------------------------------- step2. tomcat server.xml add tag <GlobalNamingResources> <Resource name="mongodb/MyMongoClient" auth="Container" type="com.mongodb.MongoClient" closeMethod="close" factory="com.mongodb.client.jndi.MongoClientFactory" singleton="true" connectionString="mongodb://localhost"/> </GlobalNamingResources> {{}} -------------------------------------------------------------------------{{}} step3. tomcat context.xml add tag <ResourceLink name="mongodb/MyMongoClient"" global="mongodb/MyMongoClient"" type="com.mongodb.MongoClient" />
------------------------------------------------------------------------- step4. java source in try { try { Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup("java:/comp/env"); Object obj123 = envContext.lookup("mongodb/MyMongoClient"); }catch (Exception e) { e.printStackTrace(); }---------------------- why mongoclient instance of cast error ?
|
| Comments |
| Comment by Jeffrey Yemin [ 28/Sep/18 ] |
|
That is more of a Spring Data question than a driver question. You may be able to get help at https://spring.io/questions.
|
| Comment by KIMCHOONGHWAN [ 28/Sep/18 ] |
|
Jeff Yemin!! 1 more qas ! Jndi get MongoClient Class . but i want MongoTemplate Class.. ----------------------------------------------------- MongoClient mongoClient = null; mongoClient = (com.mongodb.MongoClient) obj123;
// QAS >> new SimpleMongoDbFactory (mongoClient, ??? ) // ??? is dbName ... where is get ??? return new SimpleMongoDbFactory(mongoClient, daName); {color:#de350b}} }catch (Exception e) { System.out.println("###################################### EEEEEEEEEEEEEEEEEE"); e.printStackTrace(); }return null; @Bean return MongoTemplate;
red Bold Qas Write!!
Thank!
|
| Comment by KIMCHOONGHWAN [ 28/Sep/18 ] |
|
thank~ driver lib is two way import~!!Unable to render embedded object: File ( webApplication pom depency scope setting "provided" solved) not found.!
|
| Comment by Jeffrey Yemin [ 28/Sep/18 ] |
|
This is almost certainly a class loader issue. The only way two classes with the same name can be unequal is if they were loaded from different class loaders.
How is your application packaged? If it's an .ear or .war file, does that file contain the driver? If so, try removing it so that the class is loaded from the server's lib directory. |