<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:59:08 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-3245] I&apos;m trying to connect to cluster from my Android application and I always get  error  &quot;java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/naming/directory/InitialDirContext;&quot; while trying to use connection string</title>
                <link>https://jira.mongodb.org/browse/JAVA-3245</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;I&apos;m trying to connect to cluster from my Android application and I always get  error  &lt;b&gt;&quot;java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/naming/directory/InitialDirContext;&quot;&lt;/b&gt; while trying to use connection string. If I try to connect to localhost, then it is connected. Upon research I thought it was dependency issues and even downgraded to 3.9 java version of MongoDb too. Still the issue exists.&lt;/p&gt;</description>
                <environment>MongoDb 4, Java version 10, Mongo  version 4, java driver for Mongo 3.10.1</environment>
        <key id="721853">JAVA-3245</key>
            <summary>I&apos;m trying to connect to cluster from my Android application and I always get  error  &quot;java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/naming/directory/InitialDirContext;&quot; while trying to use connection string</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</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="jeff.yemin@mongodb.com">Jeffrey Yemin</assignee>
                                    <reporter username="yugeshwor09@gmail.com">Sahil Bhatta</reporter>
                        <labels>
                    </labels>
                <created>Sun, 24 Mar 2019 02:44:56 +0000</created>
                <updated>Mon, 22 Apr 2019 14:13:36 +0000</updated>
                            <resolved>Mon, 22 Apr 2019 14:13:36 +0000</resolved>
                                    <version>3.10.1</version>
                                                    <component>Connection Management</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="2190295" author="jeff.yemin" created="Mon, 25 Mar 2019 12:11:52 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=yugeshwor09%40gmail.com&quot; class=&quot;user-hover&quot; rel=&quot;yugeshwor09@gmail.com&quot;&gt;yugeshwor09@gmail.com&lt;/a&gt;,&lt;/p&gt;

&lt;p&gt;Unfortunately Android, while Java-like, is not actually Java, and so does not support all the JDK APIs that are required by the Java API specification and also required for full use of the Java driver.  In this case you&apos;re running into Android&apos;s lack of support &lt;tt&gt;javax.naming&lt;/tt&gt;.  While you could work around that by replacing your &lt;tt&gt;mongodb+srv&lt;/tt&gt; URI scheme with a &lt;tt&gt;mongodb&lt;/tt&gt; scheme, you will run into another problem:  Android also does not support &lt;tt&gt;SCRAM-SHA256&lt;/tt&gt; authentication, on which the driver also depends.&lt;/p&gt;

&lt;p&gt;Typically, what most users do is introduce an HTTP REST API layer on top of MongoDB, and use that for their mobile applications.  That way, MongoDB usage remains on the server.  MongoDB&apos;s &lt;a href=&quot;https://www.mongodb.com/cloud/stitch&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Stitch&lt;/a&gt; service takes this approach, and now comes with a &lt;a href=&quot;https://docs.mongodb.com/stitch/mongodb/mobile-overview/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;MongoDB Mobile&lt;/a&gt; service which lets you build applications with an instance of MongoDB running in Android itself.&lt;/p&gt;

&lt;p&gt;Regards,&lt;br/&gt;
Jeff&lt;/p&gt;</comment>
                            <comment id="2190001" author="yugeshwor09@gmail.com" created="Mon, 25 Mar 2019 02:46:01 +0000"  >&lt;p&gt;This line of code to connect to cluster causes error:&lt;br/&gt;
 MongoClients.create(&quot;mongodb+srv:/&lt;b&gt;sampleUserName&lt;/b&gt;:&lt;b&gt;samplePassword&lt;/b&gt;@cluster0-sgwno.mongodb.net/test?retryWrites=true&quot;)&lt;/p&gt;

&lt;p&gt;Following is the full errors on the statement:&lt;/p&gt;

&lt;p&gt; java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/naming/directory/InitialDirContext;&lt;br/&gt;
        at com.mongodb.internal.dns.DefaultDnsResolver.createDnsDirContext(DefaultDnsResolver.java:150)&lt;br/&gt;
        at com.mongodb.internal.dns.DefaultDnsResolver.resolveAdditionalQueryParametersFromTxtRecords(DefaultDnsResolver.java:112)&lt;br/&gt;
        at com.mongodb.ConnectionString.&amp;lt;init&amp;gt;(ConnectionString.java:371)&lt;br/&gt;
        at com.mongodb.client.MongoClients.create(MongoClients.java:61)&lt;br/&gt;
        at com.services.azuob.curatrip.presenter.RegistrationPresenter.connectToCluster(RegistrationPresenter.kt:9)&lt;br/&gt;
        at com.services.azuob.curatrip.activity.MainActivity$onCreate$1.run(MainActivity.kt:17)&lt;br/&gt;
        at android.os.Handler.handleCallback(Handler.java:789)&lt;br/&gt;
        at android.os.Handler.dispatchMessage(Handler.java:98)&lt;br/&gt;
        at android.os.Looper.loop(Looper.java:164)&lt;br/&gt;
        at android.app.ActivityThread.main(ActivityThread.java:6942)&lt;br/&gt;
        at java.lang.reflect.Method.invoke(Native Method)&lt;br/&gt;
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)&lt;br/&gt;
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)&lt;br/&gt;
     Caused by: java.lang.ClassNotFoundException: Didn&apos;t find class &quot;javax.naming.directory.InitialDirContext&quot; on path: DexPathList[&lt;span class=&quot;error&quot;&gt;&amp;#91;zip file &amp;quot;/data/app/com.services.azuob.curatrip-KhIJVxFovgVU7JlXhERTDg==/base.apk&amp;quot;, zip file &amp;quot;/data/app/com.services.azuob.curatrip-KhIJVxFovgVU7JlXhERTDg==/split_lib_dependencies_apk.apk&amp;quot;, zip file &amp;quot;/data/app/com.services.azuob.curatrip-KhIJVxFovgVU7JlXhERTDg==/split_lib_resources_apk.apk&amp;quot;, zip file &amp;quot;/data/app/com.services.azuob.curatrip-KhIJVxFovgVU7JlXhERTDg==/split_lib_slice_0_apk.apk&amp;quot;, zip file &amp;quot;/data/app/com.services.azuob.curatrip-KhIJVxFovgVU7JlXhERTDg==/split_lib_slice_1_apk.apk&amp;quot;, zip file &amp;quot;/data/app/com.services.azuob.curatrip-KhIJVxFovgVU7JlXhERTDg==/split_lib_slice_2_apk.apk&amp;quot;, zip file &amp;quot;/data/app/com.services.azuob.curatrip-KhIJVxFovgVU7JlXhERTDg==/split_lib_slice_3_apk.apk&amp;quot;, zip file &amp;quot;/data/app/com.services.azuob.curatrip-KhIJVxFovgVU7JlXhERTDg==/split_lib_slice_4_apk.apk&amp;quot;, zip file &amp;quot;/data/app/com.services.azuob.curatrip-KhIJVxFovgVU7JlXhERTDg==/split_lib_slice_5_apk.apk&amp;quot;, zip file &amp;quot;/data/app/com.services.azuob.curatrip-KhIJVxFovgVU7JlXhERTDg==/split_lib_slice_6_apk.apk&amp;quot;, zip file &amp;quot;/data/app/com.services.azuob.curatrip-KhIJVxFovgVU7JlXhERTDg==/split_lib_slice_7_apk.apk&amp;quot;, zip file &amp;quot;/data/app/com.services.azuob.curatrip-KhIJVxFovgVU7JlXhERTDg==/split_lib_slice_8_apk.apk&amp;quot;, zip file &amp;quot;/data/app/com.services.azuob.curatrip-KhIJVxFovgVU7JlXhERTDg==/split_lib_slice_9_apk.apk&amp;quot;&amp;#93;&lt;/span&gt;,nativeLibraryDirectories=&lt;span class=&quot;error&quot;&gt;&amp;#91;/data/app/com.services.azuob.curatrip-KhIJVxFovgVU7JlXhERTDg==/lib/arm64, /system/lib64, /system/vendor/lib64&amp;#93;&lt;/span&gt;]&lt;br/&gt;
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)&lt;br/&gt;
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)&lt;br/&gt;
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)&lt;br/&gt;
        at com.mongodb.internal.dns.DefaultDnsResolver.createDnsDirContext(DefaultDnsResolver.java:150)&#160;&lt;br/&gt;
        at com.mongodb.internal.dns.DefaultDnsResolver.resolveAdditionalQueryParametersFromTxtRecords(DefaultDnsResolver.java:112)&#160;&lt;br/&gt;
        at com.mongodb.ConnectionString.&amp;lt;init&amp;gt;(ConnectionString.java:371)&#160;&lt;br/&gt;
        at com.mongodb.client.MongoClients.create(MongoClients.java:61)&#160;&lt;br/&gt;
        at com.services.azuob.curatrip.presenter.RegistrationPresenter.connectToCluster(RegistrationPresenter.kt:9)&#160;&lt;br/&gt;
        at com.services.azuob.curatrip.activity.MainActivity$onCreate$1.run(MainActivity.kt:17)&#160;&lt;br/&gt;
        at android.os.Handler.handleCallback(Handler.java:789)&#160;&lt;br/&gt;
        at android.os.Handler.dispatchMessage(Handler.java:98)&#160;&lt;br/&gt;
        at android.os.Looper.loop(Looper.java:164)&#160;&lt;br/&gt;
        at android.app.ActivityThread.main(ActivityThread.java:6942)&#160;&lt;br/&gt;
        at java.lang.reflect.Method.invoke(Native Method)&#160;&lt;br/&gt;
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)&#160;&lt;br/&gt;
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)&#160;&lt;br/&gt;
    	Suppressed: java.io.IOException: No original dex files found for dex location (arm64) /data/app/com.services.azuob.curatrip-KhIJVxFovgVU7JlXhERTDg==/split_lib_resources_apk.apk&lt;br/&gt;
        at dalvik.system.DexFile.openDexFileNative(Native Method)&lt;br/&gt;
        at dalvik.system.DexFile.openDexFile(DexFile.java:353)&lt;br/&gt;
        at dalvik.system.DexFile.&amp;lt;init&amp;gt;(DexFile.java:100)&lt;br/&gt;
        at dalvik.system.DexFile.&amp;lt;init&amp;gt;(DexFile.java:74)&lt;br/&gt;
        at dalvik.system.DexPathList.loadDexFile(DexPathList.java:374)&lt;br/&gt;
        at dalvik.system.DexPathList.makeDexElements(DexPathList.java:337)&lt;br/&gt;
        at dalvik.system.DexPathList.&amp;lt;init&amp;gt;(DexPathList.java:157)&lt;br/&gt;
        at dalvik.system.BaseDexClassLoader.&amp;lt;init&amp;gt;(BaseDexClassLoader.java:65)&lt;br/&gt;
        at dalvik.system.PathClassLoader.&amp;lt;init&amp;gt;(PathClassLoader.java:64)&lt;br/&gt;
        at com.android.internal.os.PathClassLoaderFactory.createClassLoader(PathClassLoaderFactory.java:43)&lt;br/&gt;
        at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:69)&lt;br/&gt;
        at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:36)&lt;br/&gt;
        at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:678)&lt;br/&gt;
2019-03-25 08:30:11.361 20892-20892/com.services.azuob.curatrip E/AndroidRuntime:     at android.app.LoadedApk.getClassLoader(LoadedApk.java:711)&lt;br/&gt;
        at android.app.LoadedApk.getResources(LoadedApk.java:944)&lt;br/&gt;
        at android.app.ContextImpl.createAppContext(ContextImpl.java:2303)&lt;br/&gt;
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5943)&lt;br/&gt;
        at android.app.ActivityThread.-wrap1(Unknown Source:0)&lt;br/&gt;
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1764)&lt;br/&gt;
        at android.os.Handler.dispatchMessage(Handler.java:105)&lt;br/&gt;
        		... 5 more&lt;/p&gt;</comment>
                            <comment id="2189628" author="jeff.yemin" created="Sun, 24 Mar 2019 12:42:59 +0000"  >&lt;p&gt;Please comment back with the following information:&lt;/p&gt;

&lt;p&gt;1. the connection string you&apos;re trying to use (minus any credentials).  &lt;br/&gt;
2. the full stack trace of the exception&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|huh97j:</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>