Details
-
Task
-
Resolution: Done
-
Major - P3
-
None
-
3.8.1
-
None
-
None
-
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 ?