java - Use Tomcat connection pool in JAR (shared conf from web app, spring configuration) -


i have few web applications deployed on tomcat use same database access configuration tomcat connection pool:

<bean id="datasource" class="org.springframework.jndi.jndiobjectfactorybean">   <property name="jndiname" value="java:comp/env/jdbc/postgres"/>   <property name="lookuponstartup" value="true"/>   <property name="proxyinterface" value="javax.sql.datasource"/> </bean> 

(web.xml in each project , context.xml in tomcat set properly, because works :)).

i use connection jar files run on same server. in jar use spring, following error if use above datasource definition in code this:

    string[] springconfig = { "file:/var/pro/conf/data-access.xml"};              context = new classpathxmlapplicationcontext(springconfig); 

i following error:

exception in thread "main" java.lang.exceptionininitializererror         @ java.lang.class.forname0(native method)         @ java.lang.class.forname(class.java:247)         @ org.eclipse.jdt.internal.jarinjarloader.jarrsrcloader.main(jarrsrcloader.java:56) caused by: org.springframework.beans.factory.beancreationexception: error creating bean name 'datasource' defined in url [file:/var/pro/conf/data-access.xml]: invocation of init method failed; nested exception javax.naming.noinitialcontextexception: need specify class name in environment or system property, or applet parameter, or in application resource file:  java.naming.factory.initial         @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1482)         @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:521)         @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:458)         @ org.springframework.beans.factory.support.abstractbeanfactory$1.getobject(abstractbeanfactory.java:295)         @ org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:223)         @ org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:292)         @ org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:194)         @ org.springframework.beans.factory.support.defaultlistablebeanfactory.preinstantiatesingletons(defaultlistablebeanfactory.java:610)         @ org.springframework.context.support.abstractapplicationcontext.finishbeanfactoryinitialization(abstractapplicationcontext.java:932)         @ org.springframework.context.support.abstractapplicationcontext.refresh(abstractapplicationcontext.java:479)         @ org.springframework.context.support.classpathxmlapplicationcontext.<init>(classpathxmlapplicationcontext.java:139)         @ org.springframework.context.support.classpathxmlapplicationcontext.<init>(classpathxmlapplicationcontext.java:93)         @ com.proj.job.start.<clinit>(start.java:73)         ... 3 more caused by: javax.naming.noinitialcontextexception: need specify class name in environment or system property, or applet parameter, or in application resource file:  java.naming.factory.initial         @ javax.naming.spi.namingmanager.getinitialcontext(namingmanager.java:645)         @ javax.naming.initialcontext.getdefaultinitctx(initialcontext.java:288)         @ javax.naming.initialcontext.geturlordefaultinitctx(initialcontext.java:325)         @ javax.naming.initialcontext.lookup(initialcontext.java:392)         @ org.springframework.jndi.jnditemplate$1.doincontext(jnditemplate.java:154)         @ org.springframework.jndi.jnditemplate.execute(jnditemplate.java:87)         @ org.springframework.jndi.jnditemplate.lookup(jnditemplate.java:152)         @ org.springframework.jndi.jnditemplate.lookup(jnditemplate.java:178)         @ org.springframework.jndi.jndilocatorsupport.lookup(jndilocatorsupport.java:95)         @ org.springframework.jndi.jndiobjectlocator.lookup(jndiobjectlocator.java:105)         @ org.springframework.jndi.jndiobjecttargetsource.afterpropertiesset(jndiobjecttargetsource.java:97)         @ org.springframework.jndi.jndiobjectfactorybean$jndiobjectproxyfactory.createjndiobjectproxy(jndiobjectfactorybean.java:285)         @ org.springframework.jndi.jndiobjectfactorybean$jndiobjectproxyfactory.access$000(jndiobjectfactorybean.java:274)         @ org.springframework.jndi.jndiobjectfactorybean.afterpropertiesset(jndiobjectfactorybean.java:177)         @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.invokeinitmethods(abstractautowirecapablebeanfactory.java:1541)         @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1479)         ... 15 more 

this code not work if run outside tomcat, main. tomcat provides initial context factory jndi.


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

inno setup - TLabel or TNewStaticText - change .Font.Style on Focus like Cursor changes with .Cursor -