<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:58:33 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[JAVA-2997] JNDI LOOK UP ISSUE</title>
                <link>https://jira.mongodb.org/browse/JAVA-2997</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;error comment&#160;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#0747a6&quot;&gt;&#160;j*&lt;font color=&quot;#de350b&quot;&gt;&lt;/font&gt;ava.lang.IllegalArgumentException: The local resource link &lt;span class=&quot;error&quot;&gt;&amp;#91;mongodb/MyMongoClient&amp;quot;&amp;#93;&lt;/span&gt; that refers to global resource &lt;span class=&quot;error&quot;&gt;&amp;#91;mongodb/MyMongoClient&amp;quot;&amp;#93;&lt;/span&gt; was expected to return an instance of &lt;span class=&quot;error&quot;&gt;&amp;#91;com.mongodb.MongoClient&amp;#93;&lt;/span&gt; but returned an instance of &lt;span class=&quot;error&quot;&gt;&amp;#91;com.mongodb.MongoClient&amp;#93;&lt;/span&gt;java.lang.IllegalArgumentException: The local resource link &lt;span class=&quot;error&quot;&gt;&amp;#91;mongodb/MyMongoClient&amp;quot;&amp;#93;&lt;/span&gt; that refers to global resource &lt;span class=&quot;error&quot;&gt;&amp;#91;mongodb/MyMongoClient&amp;quot;&amp;#93;&lt;/span&gt; was expected to return an instance of &lt;span class=&quot;error&quot;&gt;&amp;#91;com.mongodb.MongoClient&amp;#93;&lt;/span&gt; but returned an instance of &lt;span class=&quot;error&quot;&gt;&amp;#91;com.mongodb.MongoClient&amp;#93;&lt;/span&gt; at&lt;/font&gt;* 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(&amp;lt;generated&amp;gt;) at com.wjthinkbig.bookclub.ugc.config.MongoConfig$$EnhancerBySpringCGLIB$$7b5e8cdc$$FastClassBySpringCGLIB$$270bed08.invoke(&amp;lt;generated&amp;gt;) 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(&amp;lt;generated&amp;gt;) 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(&amp;lt;generated&amp;gt;) at com.wjthinkbig.bookclub.ugc.config.MongoConfig.mongoTemplate(MongoConfig.java:129) at com.wjthinkbig.bookclub.ugc.config.MongoConfig$$EnhancerBySpringCGLIB$$7b5e8cdc.CGLIB$mongoTemplate$0(&amp;lt;generated&amp;gt;) at com.wjthinkbig.bookclub.ugc.config.MongoConfig$$EnhancerBySpringCGLIB$$7b5e8cdc$$FastClassBySpringCGLIB$$270bed08.invoke(&amp;lt;generated&amp;gt;) 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(&amp;lt;generated&amp;gt;) 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)&lt;font color=&quot;&quot;&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;-------------------------------------------------------------------------&lt;/p&gt;

&lt;p&gt;&#160;MY JOB STEP&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;step1.&#160; &#160;tomcat lib folder add &amp;gt;&amp;gt;&#160; mongo-java-driver-3.6.4.jar&lt;/p&gt;

&lt;p&gt;-------------------------------------------------------------------------&lt;/p&gt;

&lt;p&gt;step2.&#160; tomcat server.xml&#160; add tag&#160;&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160; &amp;lt;GlobalNamingResources&amp;gt;&#160; &#160; &#160; &#160; &#160; &#160;&#160;&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&lt;tt&gt;&amp;lt;Resource name=&quot;mongodb/MyMongoClient&quot;          auth=&quot;Container&quot;&#160; &#160; &#160; &#160; &#160; &#160;type=&quot;com.mongodb.MongoClient&quot;          closeMethod=&quot;close&quot;          factory=&quot;com.mongodb.client.jndi.MongoClientFactory&quot;          singleton=&quot;true&quot;          connectionString=&quot;mongodb://localhost&quot;/&amp;gt;&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;&#160; &#160; &#160;&amp;lt;/GlobalNamingResources&amp;gt;&#160; &#160; &#160; &#160; &#160; &#160;&#160;&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;{{}}&lt;/p&gt;

&lt;p&gt;-------------------------------------------------------------------------{{}}&lt;/p&gt;

&lt;p&gt;step3.&#160; tomcat context.xml&#160; add tag&#160;&lt;/p&gt;

&lt;p&gt;&#160; &amp;lt;ResourceLink name=&quot;&lt;tt&gt;mongodb/MyMongoClient&quot;&lt;/tt&gt;&quot; global=&quot;&lt;tt&gt;mongodb/MyMongoClient&quot;&lt;/tt&gt;&quot; type=&quot;com.mongodb.MongoClient&quot; /&amp;gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;-------------------------------------------------------------------------&lt;/p&gt;

&lt;p&gt;step4. java source in&#160;&lt;/p&gt;

&lt;p&gt;&#160;&#160;try {&#160;try &lt;/p&gt;
{&#160; Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup(&quot;java:/comp/env&quot;); Object obj123 = envContext.lookup(&quot;mongodb/MyMongoClient&quot;);

}
&lt;p&gt; catch (Exception e) &lt;/p&gt;
{
 e.printStackTrace();

}

&lt;p&gt;----------------------&lt;/p&gt;

&lt;p&gt;why mongoclient instance of cast error ?&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment>tomcat8.5 / spring version 5.0.5.RELEASE</environment>
        <key id="611196">JAVA-2997</key>
            <summary>JNDI LOOK UP ISSUE</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="qqapp">KIMCHOONGHWAN</reporter>
                        <labels>
                    </labels>
                <created>Fri, 28 Sep 2018 01:48:54 +0000</created>
                <updated>Wed, 11 Sep 2019 19:14:00 +0000</updated>
                            <resolved>Fri, 28 Sep 2018 11:03:22 +0000</resolved>
                                    <version>3.8.1</version>
                                                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="2017312" author="jeff.yemin" created="Fri, 28 Sep 2018 11:03:22 +0000"  >&lt;p&gt;That is more of a Spring Data question than a driver question.&#160; You may be able to get help at &lt;a href=&quot;https://spring.io/questions.&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://spring.io/questions.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="2017172" author="qqapp" created="Fri, 28 Sep 2018 05:09:31 +0000"  >&lt;p&gt;Jeff Yemin!!&#160;&#160;&lt;/p&gt;

&lt;p&gt;1 more qas !&#160;&lt;/p&gt;

&lt;p&gt;Jndi get MongoClient Class .&#160; &#160;but i want&#160;MongoTemplate Class..&lt;/p&gt;

&lt;p&gt;-----------------------------------------------------&lt;br/&gt;
 @Bean&lt;br/&gt;
 public MongoDbFactory mongoDbFactory() throws Exception {&lt;/p&gt;

&lt;p&gt;MongoClient mongoClient = null;&lt;br/&gt;
 try { &lt;br/&gt;
 Context initContext = new InitialContext();&lt;br/&gt;
 Context envContext = (Context)initContext.lookup(&quot;java:/comp/env&quot;);&lt;br/&gt;
 Object obj123 = envContext.lookup(&quot;mongodb/MyMongoClient&quot;);&lt;/p&gt;

&lt;p&gt;  &lt;b&gt;&lt;font color=&quot;#de350b&quot;&gt;&lt;br/&gt;
 if ( obj123 instanceof com.mongodb.MongoClient ) {&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160; &#160; &lt;b&gt;&lt;font color=&quot;#de350b&quot;&gt;mongoClient = (com.mongodb.MongoClient) obj123;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160;&lt;b&gt;&lt;font color=&quot;#de350b&quot;&gt;// QAS &amp;gt;&amp;gt; new SimpleMongoDbFactory (mongoClient, ??? )&lt;/font&gt;&lt;/b&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160;&lt;b&gt;&lt;font color=&quot;#de350b&quot;&gt;//&#160; ??? is dbName ...&#160; &#160; where is get ???&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160; &#160; &lt;b&gt;&lt;font color=&quot;#de350b&quot;&gt;return new&#160; SimpleMongoDbFactory(mongoClient, daName);&lt;/font&gt;&lt;/b&gt; &lt;/p&gt;

&lt;p&gt;&lt;b&gt;{color:#de350b}}&lt;font color=&quot;&quot;&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;


&lt;p&gt; }catch (Exception e)&lt;/p&gt;

{ System.out.println(&quot;###################################### EEEEEEEEEEEEEEEEEE&quot;); e.printStackTrace(); }

&lt;p&gt;return null;&lt;br/&gt;
 }&lt;br/&gt;
 -------------------------------&lt;/p&gt;

&lt;p&gt;@Bean&lt;br/&gt;
 public MongoTemplate mongoTemplate() throws Exception {&lt;br/&gt;
 if ( MongoTemplate == null )&lt;/p&gt;

{ final MongoDbFactory _MongoDbFactory = mongoDbFactory(); final DbRefResolver _dbRefResolver = new DefaultDbRefResolver(_MongoDbFactory); final MongoMappingContext _MongoMappingContext = new MongoMappingContext(); final MappingMongoConverter _converter = new MappingMongoConverter(_dbRefResolver, _MongoMappingContext); _converter.setTypeMapper(new DefaultMongoTypeMapper(null)); MongoTemplate = new MongoTemplate(_MongoDbFactory, _converter); }

&lt;p&gt;return MongoTemplate;&lt;br/&gt;
 }&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;red Bold Qas Write!!&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Thank!&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="2017166" author="qqapp" created="Fri, 28 Sep 2018 04:56:41 +0000"  >&lt;p&gt;thank~&#160; &#160; driver lib is two way import~!!&lt;span class=&quot;error&quot;&gt;Unable to render embedded object: File (&#160; &#160; webApplication pom depency scope setting &amp;quot;provided&amp;quot;&#160; solved) not found.&lt;/span&gt;!&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="2017132" author="jeff.yemin" created="Fri, 28 Sep 2018 02:55:18 +0000"  >&lt;p&gt;This is almost certainly a class loader issue.&#160; The only way two classes with the same name can be unequal is if they were loaded from different class loaders.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;How is your application packaged?&#160; If it&apos;s an .ear or .war file,&#160; does that file contain the driver?&#160; If so, try removing it so that the class is loaded from the server&apos;s lib directory.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htzh1r:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>