resource-ref in web.xml is typically the most portable way to wire a jndi resource into a webapp, jetty-env.xml typically lets you wire in jetty specific container configuration for declaring that jndi resource inside of the webapp....personally I prefer not seeing jetty-env.xml in a webapp and let the container configure it in a context.xml or globally in a jetty.xml formatted file.
cheers, jesse -- jesse mcconnell [email protected] On Mon, Jul 29, 2013 at 3:06 PM, Ranjith Koduri <[email protected]>wrote: > 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 > >
_______________________________________________ jetty-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/jetty-users
