Hi Russ Thanks. Pls do the following
In your perlAPI.pm add the following (in the same file). ==> perl script calls eval {$self->{CONNECTION} = new perlAPI::MyJAXB();}; ==> The following is the Java JAXB stuff __DATA__ __Java__ import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.math.BigInteger; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; import java.util.*; public class MyJAXB { public MyJAXB() throws javax.xml.bind.JAXBException, FileNotFoundException, SAXException { System.out.println("checkpoint1"); JAXBContext context = JAXBContext.newInstance("com.example.foo:com.example.bar"); System.out.println("checkpoint2"); } } "checkpoint2" will never be reached. If you do the DEBUG =>4, you will see the error [perl][3] perl doesn't know about 'javax.xml.bind.JAXBException' ('perlAPI::javax::xml::bind::JAXBException') use Inline ( Java => 'DATA', J2SDK => $ENV{JAVA_HOME}, CLASSPATH => 'classes', DEBUG => 4, ); Pls let me know how it goes. I really hope its something I did wrong meaning it works on your end. ________________________________ From: Russ Tremain <ru...@releasetools.org> To: David Wang <kuoweiw...@yahoo.com> Cc: "inline@perl.org" <inline@perl.org> Sent: Thursday, December 12, 2013 7:32 PM Subject: Re: New to Inline::Java and a quick question Re: New to Inline::Java and a quick question can you publish your full example? I can try it my environment to see if it works for me. Also, when you installed inline::Java, did it pass all the tests? At 5:18 PM -0800 12/12/13, David Wang wrote: Thanks. my perl version is v5.8.8 . It works with Java fine. Just not with JAXB at this current moment. > >________________________________ > From: Russ Tremain <ru...@releasetools.org> >To: David Wang <kuoweiw...@yahoo.com> >Cc: David Mertens <dcmertens.p...@gmail.com>; "inline@perl.org" <inline@perl.org> >Sent: Thursday, December 12, 2013 5:05 PM >Subject: Re: New to Inline::Java and a quick question > > #yiv3571647833 #yiv3571647833 -- blockquote, #yiv3571647833 dl, #yiv3571647833 ul, #yiv3571647833 ol, #yiv3571647833 li {padding-top:0;padding-bottom:0;} #yiv3571647833 Re: New to Inline::Java and a quick question one thing I can tell you is I have never gotten Inline::Java to work with any perl later than 5.8.9. I have used it extensively with JDBC.pm. Example of this can be found here: > https://github.com/russt/sqlpj > best of luck! -Russ > > At 4:57 PM -0800 12/12/13, David Wang wrote: > >Thanks >> > >> >I am not sure if anybody has any experience with perl Inline::Java to call Java JAXB . Basically, I have added some code in my perl script to call some of my Java API that calls JAXB. >> > >> >System.out.println("before·"); >> >JAXBContext context = JAXBContext.newInstance("SomeXMLPackage"); >> >System.out.println("after·"); >> > >> >and it fails on the JAXB statement above. I then added Debug and AUTOSTUDY option in perl like below >> > >> >use Inline ( >> > Java => 'DATA', >> > J2SDK => $ENV{JAVA_HOME}, >> > CLASSPATH => 'classes', >> > AUTOSTUDY => 1, >> > DEBUG => 4, >> >); >> > >> >then I see >> >[java][3] packet sent is ok java_object:1:1:javax.xml.bind.JAXBException >> >[perl][3] packet recv is ok java_object:1:1:javax.xml.bind.JAXBException >> >[perl][3] checking if stub is array... >> >[perl][3] perl doesn't know about 'javax.xml.bind.JAXBException' ('perlAPI::javax::xml::bind::JAXBException') >> >[perl][2] autostudying javax.xml.bind.JAXBException... >> >[perl][3] perl doesn't know about 'javax.xml.bind.JAXBException' ('perlAPI::javax::xml::bind::JAXBException') >> >[perl][3] reporting on javax.xml.bind.JAXBException >> > >> >I hope perl inline works with JAXB . BTW, my Java API works fine meaning I use a Java main to call this >> >API and the xml file is loaded without problem. >> > >> >thanks, >> > >> >David >> > >> > >> > >> > >> > >>________________________________ >> >From: David Mertens <dcmertens.p...@gmail.com> >>To: David Wang <kuoweiw...@yahoo.com> >>Cc: "inline@perl.org" <inline@perl.org> >>Sent: Thursday, December 12, 2013 5:37 AM >>Subject: Re: New to Inline::Java and a quick question >> > >> >Yep, as a rule, if you need to install a Perl module, a simple "cpan Module::Name" should do it. If you are on a Unixish system, you may have installation permission issues, in which case there are known work-arounds. But I'm sure you'll ask when you come to those. :-) >> >>Good luck, and don't be afraid to ask more questions as they come up! >> >David >> > >> >> >On Wed, Dec 11, 2013 at 7:38 PM, David Wang <kuoweiw...@yahoo.com> wrote: >> >>Ok, I figured it out. Hope it can be documented somewhere. >>> >> >>> >>Download Inline-0.53 >>> >>go to the dir >>> >>cpan Inline::Java << was instructed by some nice guy >>> >> >>> >>Thanks >>> >> >>> >>David >>> >> >>> >> >>> >> >>>________________________________ >>> >>From: David Wang <kuoweiw...@yahoo.com> >>>To: "inline@perl.org" <inline@perl.org> >>>Sent: Wednesday, December 11, 2013 4:25 PM >>>Subject: New to Inline::Java and a quick question >>> >> >>> >>Hi >>> >> >>> >>I am very new to this stuff, just started to hear about it today. I looked around the web and I find the installation >>> >>instructions for inline::c like the following >>> >> >>> >>perl Makefile.PL; >>> >>make; >>> >>make test; >>> >>make install; >>> >> >>> >>But I can't find anywhere else that tells us how to install inline::Java ? BTW, I found the latest Inline is Inline-0.53.tar.gz and I use Redhat 5 >>> >> >>> >>Thanks >>> >> >>> >>David >> >>> >> >>> >>> >> >>> >>> > >> >> >>-- >> "Debugging is twice as hard as writing the code in the first place. >> Therefore, if you write the code as cleverly as possible, you are, >> by definition, not smart enough to debug it." -- Brian Kernighan