Hi,
If I run this:
use strict ;
use Inline (
Java => 'DATA',
DEBUG => 0,
AUTOSTUDY => 1,
);
my $t = new MyJAXB() ;
__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");
}
}
I get this:
checkpoint1
Unexpected exception of type 'javax.xml.bind.JAXBException':
"com.example.foo" doesnt contain ObjectFactory.class or jaxb.index at
/usr/local/lib64/perl5/site_perl/5.10.0/x86_64-linux-thread-multi/Inline/Java/Object.pm
line 49
at t.pl line 10
at t.pl line 10
Don't know enough about JAXB to continue...
Patrick
On Fri, Dec 13, 2013 at 2:06 AM, David Wang <[email protected]> wrote:
> 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 <[email protected]>
> *To:* David Wang <[email protected]>
> *Cc:* "[email protected]" <[email protected]>
> *Sent:* Thursday, December 12, 2013 7:32 PM
>
> *Subject:* 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 <[email protected]>
> *To:* David Wang <[email protected]>
> *Cc:* David Mertens <[email protected]>; "[email protected]" <
> [email protected]>
> *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 <[email protected]>
> *To:* David Wang <[email protected]>
> *Cc:* "[email protected]" <[email protected]>
> *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 <[email protected]> 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 <[email protected]>
> *To:* "[email protected]" <[email protected]>
> *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
>
>
>
>
>
--
=====================
Patrick LeBoutillier
Rosemère, Québec, Canada