Do I need to add a <resource-ref> to web.xml to get JNDI working or Is it
fine to configure jetty-env.xml as I did?


Thanks & Regards,
*Ranjith*
MS-MIS, Univ Of Illinois at Chicago.





On Mon, Jul 29, 2013 at 2:27 PM, Ranjith Koduri <[email protected]>wrote:

> I moved webServer.start() before InitialContext but I'm getting the same
> error.
>
>
>
>
>
>
> On Mon, Jul 29, 2013 at 2:16 PM, Joakim Erdfelt <[email protected]>wrote:
>
>> Your webServer.start() occurred after you attempted to lookup the JNDI
>> reference.
>> That's not going to work, as the deployment of the WebAppContext is the
>> one that sets up the JNDI reference.
>>
>> You essentially asked for the information before the information even
>> existed.
>>
>> Move the webServer.start() to before the InitialContext reference.
>>
>> --
>> Joakim Erdfelt <[email protected]>
>> webtide.com <http://www.webtide.com/>
>> Developer advice, services and support
>> from the Jetty & CometD experts
>> eclipse.org/jetty - cometd.org
>>
>>
>> On Mon, Jul 29, 2013 at 12:07 PM, Ranjith Koduri <
>> [email protected]> wrote:
>>
>>> Hi,
>>>
>>>   I need to implement JNDI for Jetty 9.0.3 web server for H2 database
>>> using C3p0 connection pooling, I've placed both H2 and C3p0 jars in lib/ext
>>> of JETTY-HOME directory and I've created a jetty-env.xml file in my WEB-INF.
>>>
>>> *WEB-INF/jetty-env.xml*
>>>
>>>  <?xml version="1.0"?>
>>>     <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" 
>>> "http://jetty.mortbay.org/configure.dtd";>
>>>     <Configure class="org.eclipse.jetty.webapp.WebAppContext">
>>>         <New id="DSTest" class="org.eclipse.jetty.plus.jndi.Resource">
>>>             <Arg>jdbc/testDS</Arg>
>>>             <Arg>
>>>            <New class="com.mchange.v2.c3p0.ComboPooledDataSource">
>>>            <Set name="driverClass">org.h2.Driver</Set>
>>>            <Set name="jdbcUrl">jdbc:h2:/C:/data/test</Set>
>>>            <Set name="user">sa</Set>
>>>            <Set name="password"></Set>
>>>                 </New>
>>>             </Arg>
>>>         </New>
>>>     </Configure>
>>>
>>> I'm implementing embedded jetty with plus configuration enabled, by
>>> creating an instance of Jetty server from the main method of below class :
>>> *WebServer.java*
>>>
>>> import java.io.File;
>>> import javax.naming.Context;
>>> import javax.naming.InitialContext;
>>> import javax.sql.DataSource;
>>> import org.eclipse.jetty.server.Server;
>>> import org.eclipse.jetty.util.resource.ResourceCollection;
>>> import org.eclipse.jetty.webapp.WebAppContext;
>>>
>>> public class WebServer
>>> {
>>>
>>>     public static void main(String[] args)
>>>     {
>>>         // Creating Jetty Server on port 8080
>>>         Server webServer = new Server(8080);
>>>         org.eclipse.jetty.webapp.Configuration.ClassList classlist = 
>>> org.eclipse.jetty.webapp.Configuration.ClassList.setServerDefault(webServer);
>>>         
>>> classlist.addAfter("org.eclipse.jetty.webapp.FragmentConfiguration", 
>>> "org.eclipse.jetty.plus.webapp.EnvConfiguration",
>>>                 "org.eclipse.jetty.plus.webapp.PlusConfiguration");
>>>         WebAppContext wac = new WebAppContext();
>>>         // Set WAR Path to WebAppcontext from disk
>>>         File warPath = new File("C:/Users/XXXX/src/com/UI");
>>>         wac.setWar(warPath.getAbsolutePath());
>>>         wac.setContextPath("/");
>>>         wac.setBaseResource(new ResourceCollection(new String[] { 
>>> "./WebContent", "build/classes" }));
>>>         webServer.setHandler(wac);
>>>         try
>>>         {
>>>             InitialContext ic = new InitialContext();
>>>                 DataSource myDS = 
>>> (DataSource)ic.lookup("java:comp/env/jdbc/testDS");
>>>             System.out.println("param ::: "+myDS);
>>>             webServer.start();
>>>             webServer.join();
>>>         }
>>>         catch (Exception e)
>>>         {
>>>             e.printStackTrace();
>>>         }
>>>
>>>     }
>>>
>>> }
>>>
>>> I get following error, how can I resolve this?
>>>
>>> javax.naming.NameNotFoundException; remaining name 'env/jdbc/testDS'
>>>     at org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:505)
>>>     at org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:536)
>>>     at org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:551)
>>>     at 
>>> org.eclipse.jetty.jndi.java.javaRootURLContext.lookup(javaRootURLContext.java:117)
>>>     at javax.naming.InitialContext.lookup(InitialContext.java:411)
>>>     at com.server.WebServer.main(WebServer.java:37)
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> jetty-users mailing list
>>> [email protected]
>>> https://dev.eclipse.org/mailman/listinfo/jetty-users
>>>
>>>
>>
>> _______________________________________________
>> jetty-users mailing list
>> [email protected]
>> https://dev.eclipse.org/mailman/listinfo/jetty-users
>>
>>
>
_______________________________________________
jetty-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to