Hi Ravi,

I have solved the problem, but it wasn't how I expected.  The main culprit in 
this is Hibernate.

My first issue was trying to get Hibernate to recognize the mySQL JDBC driver.  
I put that thing in nearly every possible location it could go within my JBoss 
environment, with no luck.  

Finally, I played with my Hibernate configuration files.  Turns out that, when 
deployed within JBoss, Hibernate must use a configured DataSource, not a 
collection of connection properties, such as "driver", "url", etc.  Once I did 
this, jBPM was able to find my mySQL instance.  This only seems to apply to 
external DB's, though --I did not have this problem with the internal 
Hypersonic DB.  Moreover, I did not have this problem when running my test app 
within the Starter's Kit in Eclipse, even w/ mySQL.

I'd be very interested to know why Hibernate couldn't find the driver outside 
of a DataSource specification.

My second issue was simpler -- packaging up jBPM with the correct dependencies. 
 jBPM 3.0.1 and JBoss 4.0.3 use different versions of Hibernate -- 3.0.5 for 
the former and 3.1 for the latter.  This also includes different versions for 
some of the third-party libraries used by both jBPM and JBoss, such as 
collections-commons and BSH.

My goal was to minimize the number of duplicate libraries within my 
environment, but, in the end, I simply decided that the versioning issue was 
going to overrule this.  Thus, I packaged jBPM with all libraries that were not 
included with, or had different versions than, the same libraries deployed with 
JBoss.  

It seems that JBoss will allow classloading to occur from within the EAR first, 
then delegate up the chain, instead of delegating first, as would be standard 
behavior.  I was surprised by this, because, according to the JBoss 4.0 
documentation, the "local EAR" loading behavior would require a 
jboss-deploy.xml file to be included with the EAR, but I did not include one.  
In any case, this behavior does solve versioning issues.

I used an EAR instead of a SAR because EAR's are portable and, to my knowledge, 
SAR's are not (perhaps I'm behind the times?).  Also, I didn't want to package 
the jBPM libraries with my app, because I want to be able to use jBPM for 
multiple applications, without having to deploy it separately each time.

Of course, using an EAR for jBPM requires EAR-to-EAR visibility, which may not 
be desireable, as it's not standard J2EE.  I haven't figured out that issue yet.

Hope this is helpful.  Thanks.



View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3918159#3918159

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3918159


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to