Support #1703
closed
Simple question - 9.1 sql extension
Category:
Saxon extensions
Fixed in Maintenance Release:
Description
Hello and thanks for your time to look at this.
I know it is a stupid question but I keep banging my head and can't get it to work.
We have 9.1 in production and I just want to do some simple queries but I can't get the extension to work.
Following is the xslt which is correct as far as I can tell.
I don't want to enable the extension for all transformations if I can help it but if I have to use a config.xml where does it go? The sql jar is in the same directory so I should not have a path issue.
I am working on this in oXygen but will eventually be implemented on our linux server.
Help! I am stumped...
Best regards,
Tony
Files
There's nothing obviously wrong with the XSLT code, but there are plenty of ways it can go wrong because of configuration issues. I'm afraid 9.1 is fading in the memory a little, and although this area hasn't changed much, some of the configuration stuff has changed a lot.
The first thing is to establish exactly (a) how you are running it, and (b) how it is failing. For maximal diagostics, use -t and -T and -TJ on the command line.
Thank you so much Mr. Kay for your response.
When running in oXygen I get "XTDE1450: Unknown extension instruction"
When running on the command line with -t and -T and -TJ I get: "No Java class net.sf.saxon.sql.SQLElementFactory could be loaded".
All of the saxon9-* jars are present.
Sorry about the strike through.
Message thrown with the options enabled:
No Java class net.sf.saxon.sql.SQLElementFactory could be loaded
It's really useful to say exactly how you ran the command line. For example, the effect you describe is consistent with a common mistake which is to run using the ~~jar option rather than the -cp option on the command line ~~ this ignores anything on the classpath. But without seeing your command line, that's a random guess, there are many other things that could cause the same symptoms. However, we've narrowed it down to problems with loading the Saxon extension code. If you're running from the command line, that is always a classpath issue. For some reason, saxon9-sql.jar is not being found on the classpath.
Thanks again for your response.
I was using ~~jar however I have tried -cp and can't get it to work. I hope you can understand that I am not a java developer ~~ just wanting to do a simple query from xsl. Everything is vanilla so the standard command line syntax would be helpful.
This is what I am trying but does not work:
java -cp "/opt/lf523/tomcat/webapps/motive/WEB-INF/lib/*" saxon9.jar input.xml transform.xsl
I have tried a bunch of different combinations found via google with no luck.
Like I said, stupid question - and I know these types of questions are annoying to seasoned developers however I do not have access to a java developer.
Thank you kindly for your patience with me.
I do appreciate the problems people have if they are new to other technologies like Java (or using the command line) as well as to XSLT, and we try to provide some beginner's advice in the documentation while avoiding reproducing the full documentation. However, as mentioned before, it's easier to tell people what they are doing wrong if they tell us exactly what they are doing).
If saxon9.jar and saxon9-sql.jar are in the folder /lib/saxon, and you're using a Unix shell, then your command line should look like this:
java -cp /lib/saxon/saxon9.jar:/lib/saxon/saxon9-sql.jar net.sf.saxon.Transform -s:source.xml -xsl:stylesheet.xsl -o:out.hthl -t
That worked. Thank you very much.
Have a great day!
Well, as you probably suspected, I didn't get any further.
Now I get: SXSQ0003: JDBC Connection Failure: com.mysql.jdbc.Driver
The classpath to the Saxon sql extension is specified in the command line but that doesn't seem to be helping here. I believe the driver is in the mysql.jar however <xsl:param name="driver" select="'jdbc:mysql://localhost/com.mysql.jdbc.Driver'"/> returns the same.
This is the documentation I am looking at - is there any other?
http://www.saxonica.com/documentation/sql-extension/connect.xml
Path to mysql.jar is /opt/lf523-motive-test/tomcat-6.0.18/lib/ext
I can't seem to think of anything else to provide - please let me know what else may help.
Again, your time helping me is greatly appreciated.
Kind regards,
Tony
The next step is to make sure that /opt/lf523-motive-test/tomcat-6.0.18/lib/ext/mysql.jar is on the classpath. Unless you changed the command line from the one I gave you, it isn't.
At this stage unfortunately you're into JDBC territory rather than Saxon territory, which makes it more difficult to help you. I'm afraid that getting all the pieces into place to make this work can be tricky - it's one of those things that either works first time or needs a lot of fiddling about. What I often advise people is to make sure that they can connect direcly from a Java application to the database before they try doing it via Saxon - but to be honest, that's really just a way of getting Saxon out of the loop so it's clear that this isn't the place to turn for help.
Thanks again Mr. Kay. I think my issues are around classpath.
- Tracker changed from Extensions to Support
- Status changed from New to Closed
Closing this enquiry as there is no further input from the originator.
Please register to edit this issue
Also available in: Atom
PDF