No hay forma. Me estoy rompiendo la cabeza y probe todo.
Es una pavada seguro.. pero no la encuentro. Probe en linux, probaron en windows. Probe seteando el classpath de distintas maneras.. eh incluso puse la ruta absoluta al archivo.
No encuentra el jndi.properties:
<bean id="environment" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" value="classpath:/jndi.properties" />
</bean>
Ninguna de las combinaciones funciona:
<property name="location" value="classpath:/jndi.properties" />
<property name="location" value="classpath:jndi.properties" />
<property name="location" value="classpath:.jndi.properties" />
<property name="location" value="classpath:./jndi.properties" />
<property name="location" value="/home/pablo/4.binarios/jndi.properties/jndi.properties" />
<property name="location" value="//home/pablo/4.binarios/jndi.properties/jndi.properties" />
<property name="location" value="classpath:./home/pablo/4.binarios/jndi.properties/jndi.properties" />
De las formas que pruebe obtengo la traza que copio abajo. Con la varialble de entorno CLASSPATH y el parametro -cp tambien jugue.
Como les digo soy nuevo en Spring. Lo unico que se me ocurre es que el problema puede venir por la combinacion de clases que uso (para obtener un bean desde mi codigo y en la definicion del bean environment en el application-context.xml). Esto no lo hice yo si no un compañero. Para obtener un bean utilizo:
ClassPathXmlApplicationContext path = new ClassPathXmlApplicationContext("client-app-context.xml");
return path.getBean(beanName);
Probe tambien cambiando esto a:
ctx = new GenericApplicationContext();
XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(ctx);
xmlReader.loadBeanDefinitions(resource);
return ctx.getBean(beanName);
Pero tampoco. Es correcto el uso de "org.springframework.beans.factory.config.PropertiesFactoryBean" en la definicion de environtment en el application-context.xml?
Se les ocurre que puede ser? Cualquier idea es mas que bienvenida.
Saludos, Pablo. PD: abajo esta la traza.
Excepcion:
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'environment' defined in class path resource [client-app-context.xml]: Invocation of init method failed; nested exception is java.io.FileNotFoundException: class path resource [/home/pablo/4.binarios/jndi.properties] cannot be opened because it does not exist
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1362)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:540)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:485)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:170)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:407)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:735)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:122)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:66)
at es.com.s21sec.bitacora5.ui.ClientBeanFactory.getBean(ClientBeanFactory.java:58)
at es.com.s21sec.bitacora5.ui.incidences.ManagersFactory.getIncidencesManager(ManagersFactory.java:17)
at es.com.s21sec.bitacora5.ui.incidences.events.EventsTable.<init>(EventsTable.java:72)
at es.com.s21sec.bitacora5.ui.incidences.events.EventsTablePanel.getEventsTable(EventsTablePanel.java:98)
at es.com.s21sec.bitacora5.ui.incidences.events.EventsTablePanel.initialize(EventsTablePanel.java:75)
at es.com.s21sec.bitacora5.ui.incidences.events.EventsTablePanel.<init>(EventsTablePanel.java:64)
at es.com.s21sec.bitacora5.ui.incidences.IncidencesPanel.getEventsTablePanel(IncidencesPanel.java:282)
at es.com.s21sec.bitacora5.ui.incidences.IncidencesPanel.<init>(IncidencesPanel.java:70)
at es.com.s21sec.bitacora5.ui.incidences.IncidencesPanel.main(IncidencesPanel.java:317)
Caused by: java.io.FileNotFoundException: class path resource [/home/pablo/4.binarios/jndi.properties] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:142)
at org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(PropertiesLoaderSupport.java:178)
at org.springframework.core.io.support.PropertiesLoaderSupport.mergeProperties(PropertiesLoaderSupport.java:157)
at org.springframework.beans.factory.config.PropertiesFactoryBean.createInstance(PropertiesFactoryBean.java:98)
at org.springframework.beans.factory.config.PropertiesFactoryBean.afterPropertiesSet(PropertiesFactoryBean.java:69)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1390)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1359)
... 22 more