Tom, I don't know anything about Catalyst, but my guess is that it puts your code into some autogenerated namespace, and that why you can't find your methods.
If you set the DEBUG Inline::Java option to 5, you should get a lot of output that should tell you where the methodds are being bound. If it's too cryptic, you can post it to this list and I'll look at it. If that's the case, you can look at the PACKAGE option that allows you to force where the code will be bound. Patrick On Wed, Oct 31, 2012 at 6:20 PM, Tom Kane <t.k...@mindspring.com> wrote: > Hi, > > I am trying to work with Inline::Java from within a > Linux/nginx/fastcgi/Catalyst framework. I need to be able to interface to a > PayPal .jar file, which is the only method of access I have to their > "Hosted Checkout" credit card processing. > > I have a perl module (.pm) that executes an Inline Java STUDY on the > PayPal .jar file. I can access this module from a non-Catalyst perl program > and everything works fine. However, if I try to execute this same module > from within a Catalyst module, there is a problem and I don't know if this > stems from something being done within Inline::Java's STUDY process or > whether Catalyst is doing or missing something. > > Before going forward, I would like to add that I have been able to > successfully use Catalyst together with Inline::Java where I have a simple > class defined in a very simple .jar file. Works like a champ. I use a > simple STUDY command: > > use Inline Java => 'STUDY', > CLASSPATH => "/path/to/Greeter.jar", > STUDY => [ Greeter ] ; > > So it's not as if there are incompatibilities between Catalyst and > Inline::Java. > > The problem comes from the fact that the PayPal .jar file's methods are > more complex than the simple methods used in my successful > Catalyst-Inline::Java test. > > I declare the PayPal methods that I'm trying to use as follows: > > use Inline Java => 'STUDY', > CLASSPATH => "/path/to/payflow.jar", > STUDY => [ > 'paypal.payflow.AuthorizationTransaction', > 'paypal.payflow.BillTo', > 'paypal.payflow.Currency', > 'paypal.payflow.Invoice', > 'paypal.payflow.PayflowConnectionData', > etc. > ]; > > The problem seems to be a namespace issue as I get the error message: > > ... (perhaps you forgot to load "paypal::payflow::Invoice"?) > > As I said, the multi-layered PayPal methods declaration works successfully > when I execute it from a non-Catalyst perl program. But it seems as though > Catalyst expects there to be separate sub-directories for each of the > methods (given the use of the :: separators between paypal, payflow, and > Invoice). > > Have I missed something with regard to how Inline::Java STUDY works when > there is a multi-layered library? (Except it works okay outside of > Catalyst, which, of course, may be purely accidental.) > > Thanks for any help. > > Tom > -- ===================== Patrick LeBoutillier Rosemère, Québec, Canada