Unsupported JNDI Object

Discussions

Web tier: servlets, JSP, Web frameworks: Unsupported JNDI Object

  1. Unsupported JNDI Object (9 messages)

    Currently I'm working on embedding Crystal Reports into my JSP app running on Tomcat. The report connects to an Oracle DB using JDBC. The following are my server.xml file and my web.xml file. When I run the app and it tries to run the report it gives a "Unsupported JNDI Object" error. Looking to shed some light on this error. Thanks ahead of time.

    :server.xml (this snippet is within the <GlobalNamingResources> block)

    <Resource name="jdbc/kaark" auth="Container"
                      type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
                      url="jdbc:oracle:thin:@kaarkvpc.network.int:1521:SID2"
                      username="asmdc" password="*****" maxActive="20" maxIdle="10"
                  maxWait="-1"/>

    :web.xml (this snippet is within the <web-app> block)

    <resource-ref>
        <res-ref-name>jdbc/kaark</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>


    Any insight would be helpful, thanks again.

    Threaded Messages (9)

  2. Unsupported JNDI Object[ Go to top ]

    i'm using the following in web.xml
    ----------------------------------
    <description>DB Connection</description>
      <res-ref-name>jdbc/upload</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
    ----------------------------------------------------
      <res-sharing-scope>Unshareable</res-sharing-scope>(added line)
    -----------------------------------------------------
     </resource-ref>
    ----------------------------------
    try it. it might help.

    also tell ur tomcat version
  3. Unsupported JNDI Object[ Go to top ]

    ah! I failed to mention that do not put the resource ref in global .....

    put it in between the (Context)(/Context) tags as i did here in server.xml

    (Context docBase="E:\umar\workspace\.deployables\KnowledgeMiracle" path="/KnowledgeMiracle" reloadable="true" source="com.ibm.wtp.web.server:KnowledgeMiracle">
    <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/)

    (/Context)
  4. Hi, i have one error to display my report .rpt with BEA Weblogic Workshop, This is the error to run my Project:

     com.crystaldecisions.report.web.viewer.CrystalReportViewer
     Unsupported JNDI Object ()
     
    My BD is in Oracle9i, What happend??. Help me please...
  5. Unsupported JNDI Object[ Go to top ]

    Thanks for the reply. Haven't been able to try it out but will today. Using Tomcat 5.5, and also going to be trying to deploy it to our OracleAS, don't know the exact version on that right of top of my head. Will reply again after I try the above, thanks for the reply, it's much appreciated.
  6. Unsupported JNDI Object[ Go to top ]

    Hi, did you manage to solve this problem? I'm having the same thing:
    Regular lookup and query works, but CR doesn't seem to be able to work with the data source (I'm also using sql server).

    I get the same exception:
    06 Dec 2005 14:31:42 [http-8084-Processor1] ERROR com.crystaldecisions.reports.reportdefinition.datainterface - Failed to open connection (Connection: databaseType=ODBC (RDO) serverName=myDSN state=closed databaseDriverName=crdb_odbc.dll).
    com.crystaldecisions.reports.queryengine.al: Unsupported JNDI Object (myDSN)
    at com.crystaldecisions.reports.queryengine.driver.l.if(Unknown Source)
    at com.crystaldecisions.reports.queryengine.av.new(Unknown Source)
    at com.crystaldecisions.reports.queryengine.av.byte(Unknown Source)
    at com.crystaldecisions.reports.reportdefinition.datainterface.a.a(Unknown Source)
    at com.crystaldecisions.reports.reportdefinition.datainterface.a.a(Unknown Source)
    at com.crystaldecisions.reports.reportdefinition.datainterface.a.a(Unknown Source)
    at com.crystaldecisions.reports.reportdefinition.datainterface.a.if(Unknown Source)
    at com.crystaldecisions.reports.reportdefinition.datainterface.g.a(Unknown Source)
    at com.crystaldecisions.reports.reportengineinterface.Engine.needToLogOnServer(Unknown Source)
    at com.crystaldecisions.reports.reportengineinterface.JPEReportSource.getPage(Unknown Source)
    at com.crystaldecisions.report.web.viewer.ReportAgent.a(Unknown Source)
    at com.crystaldecisions.report.web.viewer.CrystalReportViewer.goto(Unknown Source)
    at com.crystaldecisions.report.web.ServerControl.a(Unknown Source)
    at com.crystaldecisions.report.web.ServerControl.processHttpRequest(Unknown Source)
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:164)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:534)
    06 Dec 2005 14:31:42 [http-8084-Processor1] ERROR com.crystaldecisions.reports.reportdefinition.datainterface - com.crystaldecisions.reports.reportdefinition.datainterface.e: Unsupported JNDI Object (myDSN)
    06 Dec 2005 14:31:42 [http-8084-Processor1] ERROR com.crystaldecisions.reports.reportengineinterface - failed to process getPage request
    com.crystaldecisions.reports.reportengineinterface.EngineException: Unsupported JNDI Object (myDSN)
    at com.crystaldecisions.reports.reportengineinterface.Engine.needToLogOnServer(Unknown Source)
    at com.crystaldecisions.reports.reportengineinterface.JPEReportSource.getPage(Unknown Source)
    at com.crystaldecisions.report.web.viewer.ReportAgent.a(Unknown Source)
    at com.crystaldecisions.report.web.viewer.CrystalReportViewer.goto(Unknown Source)
    at com.crystaldecisions.report.web.ServerControl.a(Unknown Source)
    at com.crystaldecisions.report.web.ServerControl.processHttpRequest(Unknown Source)
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:164)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:534)
    Caused by: com.crystaldecisions.reports.reportdefinition.datainterface.e: Unsupported JNDI Object (eAudit_DSN)
    at com.crystaldecisions.reports.reportdefinition.datainterface.a.a(Unknown Source)
    at com.crystaldecisions.reports.reportdefinition.datainterface.a.a(Unknown Source)
    at com.crystaldecisions.reports.reportdefinition.datainterface.a.a(Unknown Source)
    at com.crystaldecisions.reports.reportdefinition.datainterface.a.if(Unknown Source)
    at com.crystaldecisions.reports.reportdefinition.datainterface.g.a(Unknown Source)
    ... 30 more
    Caused by: com.crystaldecisions.reports.queryengine.al: Unsupported JNDI Object (eAudit_DSN)
    at com.crystaldecisions.reports.queryengine.driver.l.if(Unknown Source)
    at com.crystaldecisions.reports.queryengine.av.new(Unknown Source)
    at com.crystaldecisions.reports.queryengine.av.byte(Unknown Source)
    ... 35 more
  7. Crystal Report JNDI Object[ Go to top ]

    An article on Troubleshooting JDBC (JNDI) connection issues with Crystal Reports
    is present at this link
    http://support.businessobjects.com/library/kbase/articles/c2017533.asp
  8. Working configuration[ Go to top ]

    Here's my working configuration, remember that username and password must be set in the xml file, though is not a good thing..
    CRConfig.xml
    <JDBCURL>jdbc:oracle:thin:@dbserver-hostname:1521:dbname</JDBCURL>
    <JDBCClassName>oracle.jdbc.driver.OracleDriver</JDBCClassName>
    <JDBCUserName>user</JDBCUserName>
    <JNDIURL>jdbc:oracle:thin:@dbserver-hostname:1521:dbname</JNDIURL>

    Server.xml
       <Resource name="jdbc/opteron" type="javax.sql.DataSource" scope="Shareable" />
    ...
        <ResourceParams name="jdbc/dbserver">
          <parameter>
            <name>maxWait</name>
            <value>5000</value>
          </parameter>
          <parameter>
            <name>maxActive</name>
            <value>4</value>
          </parameter>
          <parameter>
            <name>password</name>
            <value>password</value>
          </parameter>
          <parameter>
            <name>url</name>
            <value>jdbc:oracle:thin:@dbserver-hostname:1521:dbname</value>
          </parameter>
          <parameter>
            <name>driverClassName</name>
            <value>oracle.jdbc.driver.OracleDriver</value>
          </parameter>
          <parameter>
            <name>maxIdle</name>
            <value>2</value>
          </parameter>
          <parameter>
            <name>username</name>
            <value>user</value>
          </parameter>
    <webapp-name>.xml in conf\catalina
      <Resource type="javax.sql.DataSource" scope="Shareable" description="Oracle Datasource" auth="Container" name="jdbc/dbserver"/>
      <ResourceParams name="jdbc/opteron">
        <parameter>
          <name>url</name>
          <value>jdbc:oracle:thin:@dbserver-hostname:1521:dbname</value>
        </parameter>
        <parameter>
          <name>password</name>
          <value>password</value>
        </parameter>
        <parameter>
          <name>maxActive</name>
          <value>10</value>
        </parameter>
        <parameter>
          <name>maxWait</name>
          <value>5000</value>
        </parameter>
        <parameter>
          <name>driverClassName</name>
          <value>oracle.jdbc.driver.OracleDriver</value>
        </parameter>
        <parameter>
          <name>username</name>
          <value>user</value>
        </parameter>
        <parameter>
          <name>maxIdle</name>
          <value>4</value>
        </parameter>
      </ResourceParams>

    web.xml
        <resource-ref>
        <description>Oracle Datasource</description>
    <res-ref-name>jdbc/dbserver</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
        </resource-ref>
  9. Unsupported JNDI Object[ Go to top ]

    I have created a WAR file that will allow me to view a report with "Saved data" but I am unable to refresh the data. I am using NetBeans 5 with Tomcat.

    I have taken the following steps, what am I doing wrong?

    I edited c:\Program Files\Common Files\Business Objects\3.0\java\CRConfig.xml with the following values:
    <Classpath>C:\oracle\product\10.2.0\client_1\jdbc\lib\ojdbc14.jar;
    ...
    <JDBC>
    <CacheRowSetSize>100</CacheRowSetSize>
    <JDBCURL>jdbc:oracle:thin:@10.45.10.1:1521:dev</JDBCURL>
    <JDBCClassName>oracle.jdbc.driver.OracleDriver</JDBCClassName>
    <JDBCUserName>username</JDBCUserName>
    <JNDIURL></JNDIURL>
    <JNDIConnectionFactory></JNDIConnectionFactory>
    <JNDIInitContext>/</JNDIInitContext>
    <JNDIUserName>weblogic</JNDIUserName>
    <GenericJDBCDriver>
    <Option>No</Option>
    <DatabaseStructure>catalogs,tables</DatabaseStructure>
    <StoredProcType>Standard</StoredProcType>
    <LogonStyle>Oracle</LogonStyle>
    </GenericJDBCDriver>
    </JDBC>

    I created the report in Crystal reports XI using JDBC driver. I saved the report with data.

    In the JSP project in the CRConfig.xml file I have
    <JDBC>
    <CacheRowSetSize>100</CacheRowSetSize>
            <JDBCURL>jdbc:oracle:thin:@10.45.10.1:1521:dev</JDBCURL>
    <JDBCClassName>oracle.jdbc.driver.OracleDriver</JDBCClassName>
    <JDBCUserName>username</JDBCUserName>
    <JNDIURL>jdbc:oracle:thin:@ 10.45.10.1:1521:dev </JNDIURL>
    <JNDIConnectionFactory></JNDIConnectionFactory>
    <JNDIInitContext>/</JNDIInitContext>
    <JNDIUserName>weblogic</JNDIUserName>
    <GenericJDBCDriver>

    in CRDB_javaServer.ini I have

    [CRDB_JDBC]
    CacheRowSetSize = 100
    JDBCURL =
    JNDIURL = jdbc:oracle:thin:@ 10.45.10.1:1521:dev
    JDBCUserName = username
    JDBCDriverName = oracle.jdbc.driver.OracleDriver
    JNDIUserName = weblogic
    JNDIConnectionFactory =
    JNDIInitContext = /
    GenericJDBCDriverBehavior = DB2

    In the web.xml file I have
      <resource-ref>
                <description>Oracle Datasource</description>
            <res-ref-name>jdbc/dev</res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
                </resource-ref>

    in the context.xml I have
    <Context path="/BOEnterpiseTest4">
      <Resource name="jdbc/dev10g" auth="Container" type="javax.sql.DataSource" username="username" password="password" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@10.45.10.1:1521:dev" maxActive="8" maxIdle="4"/>
    </Context>

    In server.xml
    <Resource name="jdbc/dev" type="javax.sql.DataSource" scope="Shareable" />
     <ResourceParams name="jdbc/dev">
          <parameter>
            <name>maxWait</name>
            <value>5000</value>
          </parameter>
          <parameter>
            <name>maxActive</name>
            <value>4</value>
          </parameter>
          <parameter>
            <name>password</name>
            <value>thepassword</value>
          </parameter>
          <parameter>
            <name>url</name>
            <value>jdbc:oracle:thin:@10.45.10.1:1521:dev</value>
          </parameter>
          <parameter>
            <name>driverClassName</name>
            <value>oracle.jdbc.driver.OracleDriver</value>
          </parameter>
          <parameter>
            <name>maxIdle</name>
            <value>2</value>
          </parameter>
          <parameter>
            <name>username</name>
            <value>username</value>
          </parameter>
     </ResourceParams>

    I get the following errors
    Unsupported JNDI Object (dev)
    Or
    Error finding JNDI name (jdbc/dev)
  10. Re: Unsupported JNDI Object[ Go to top ]

    Very sorry for sending a late reply. I don't know whether ur problem was solved yet ot not. If u were able to solve the problem then ignore the rest. What I observed in the codes is that u r using Context as well as Resource in server.xml file. Do not make any modifications in the server.xml file as it is not required. The only modification required is in context.xml file ie. change Resource name="jdbc/dev10g" to "jdbc/dev" as that is the name u r using in web.xml file. I think that works fine