This is were my confussion lies.
In my example I have 4 units:
- HG-DataAccess.jar, which has the DOAs (model) and a spring context called
componentContext.xml defining the "parent" context for Spring, and a
beenRefFactory.xml that setups up the DataSources and all the hibernate stuff, in the
root.
- HG-Service.jar that defines some service util classes (controller)
- HG-Service.war, which is the WAR stuff, and has a web.xml that uses the
ContextLoaderListener to bootstrap the Spring stuff. This is done using an Spring context
locally to build the requred stuff from the HG-Service.jar and the HG-Service.war, as well
as defining the parent context as classpath:componentContext.xml
- HG.ear which comprises some combination of the above.
Upon deploy, the WAR kicks off the web.xml, which in tern loads the ContextLoaderListener,
which then loads the local applicationContext.xml (local to the WAR) and the
componentContext.xml (which is defined as "classpath:componentContext.xml", and
should be found). I have tried putting HG-DataAccess.jar in the EAR, in the Server lib,
and in the JBoss lib. No matter where I put it, I get the folliowing spewage:
13:00:07,109 INFO [XmlBeanDefinitionReader] Loading XML bean definitions from class path
resource [applicationContext.xml]
| 13:00:07,117 ERROR [ContextLoader] Context initialization failed
| org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing
XML document from class path resource [applicationContext.xml]; nested exception is
java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be
opened because it does not exist
| Caused by:
| java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be
opened because it does not exist
| at
org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:135)
| ...
Hence the confussion. If the WAR did indeed have visibility to the EAR, server lib, and
JBoss lib, any one of the above combinations would not throw this error since anyone one
of them would be visible *from* the WAR, which would then find the aformentioned
componentContext.xml in the classpath.
When I put the HG-DataAccess.jar into the WAR, it loads just fine, but that defeats the
whole "shared library" excercise.
My next step, I think, will be to add a dummy service to load the HG-DataAccess.jar's
Spring context, have it put the classes that need to be shared in JNDI, and then pull them
out on the WAR side from JNDI. This is not what I consider ideal.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4020738#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...