XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Brian RunckSubject: Cannot use JAR file for function, etc.
Author: Brian Runck
Date: 22 Aug 2002 11:18 AM
I've run into 2 problems. First one is, when trying to use a Java function registered in the mapper, I keep getting an error that it can't find a class. This class is in the JAR file which I have repeatedly tried to define in the CLASSPATH everywhere I can think of (the 2 in my environment (System and User variables), and the 2 in SS (External JVM and Java Virtual Machine)). It's also included in the Java Compiler classpath, which does seem to work because you can compile the class file from within SS.
I use the JDK 1.4 SE. I run NT 4 SP6 and the latest version of SS (build 96). I have noticed that the Java runtime itself seems to ignore the environment classpaths, for JAR files anyway. I can't run a sample program using this JAR file unless I define it using the -cp option on the command line, whether or not it's defined in the default classpath(s). I don't know why that is either but it may be related.

Second problem is that once the class is to be registered, the "Java Class Browser" doesn't seem to work very well. It has a file tree view that only has CLASSPATH as a root and only expands to ".", which is always forced to be the "bin" folder for Stylus Studio. Doesn't seem to matter where the project and other files reside. So I have to put my function class files in the bin directory for them to be registered. I'd rather not have to do that and I don't believe it's supposed to work that way from what the doc says.

I'm including a zip file with all the files; project, JAR file, XSL/XML/schema files, etc. I've also included the stderr.txt file which has the error information when I try to run the scenario. There's only one scenario, available to be run when the "PAISconversion.xsl" file is open. It has a post-processing command as well but I don't think it gets that far. I'll include the classpaths from the 2 places in SS options:

Java Virtual Machine:
${classpath};"C:\Program Files\Stylus Studio\bin\xalan.jar";"C:\Program
Files\Stylus Studio\bin\xml-apis.jar";"C:\Program Files\Stylus
Studio\bin\xerces.jar";"D:\OMetadata\regexp
test\jakarta-oro-2.0.6.jar";.;

External JVM:
${classpath};"C:\Program Files\Stylus Studio\bin\xalan.jar";"C:\Program
Files\Stylus Studio\bin\xml-apis.jar";"C:\Program Files\Stylus
Studio\bin\xerces.jar";"D:\OMetadata\regexp
test\jakarta-oro-2.0.6.jar";.;

Note the extra "." was added at the end in a desperate attempt to get the Java class browser to recognize directories other than "bin." That doesn't help and is obvious when using the browser.

The function that is used in the project is the one that uses the ORO regexp package. The other function in the class is not demonstrated here, but uses the Java 1.4 regexp classes and that seems to avoid problem #1, since its imported classes are part of the Java defaults.

I hope these can be looked at and resolved as it causes quite a burden for us. Thank you.


Unknownfunctionprobs.zip

Postnext
Minollo I.Subject: Re: Cannot use JAR file for function, etc.
Author: Minollo I.
Date: 22 Aug 2002 11:40 AM
My best guess is that the problem is in this setting:

Java Virtual Machine:
${classpath};"C:\Program Files\Stylus Studio\bin\xalan.jar";"C:\Program
Files\Stylus Studio\bin\xml-apis.jar";"C:\Program Files\Stylus
Studio\bin\xerces.jar";"D:\OMetadata\regexp
test\jakarta-oro-2.0.6.jar";.;

....you shouldn't use quotes around the paths; it should just be (no need to
include the Stylus .jar files):
${classpath};D:\OMetadata\regexp test\jakarta-oro-2.0.6.jar

That's the only entry which affects XSLT Java extensions and class browser
behavior.

Also, the Java class browser listrs all the reachable classes reading the
directories and .jar files listed in the above mentioned Options entry. In
your case, I'm assuming that the system CLASSPATH env variable is empty;
the .jar files are not reachable as you used quotes around them; the only
reachable entry is whatever .class is inside the '.' path, which is usually
Stylus bin. If you add other directories or .jar files to the classpath
setting (without quotes!) you will then be able to see them in the class
browser.

Hope this helps,
Minollo

Postnext
Brian RunckSubject: Re: Cannot use JAR file for function, etc.
Author: Brian Runck
Date: 22 Aug 2002 12:19 PM
Thanks, this was very helpful! I think the quote confusion came from this:

- The post-processing command (which is a call to Java) uses an XSL file, and this needs to have a full path around it (otherwise it looks in the Stylus Studio "bin" path for it) and if there is a space in the path, it needs to be in quotes.

- The paths in the classpaths need to NOT be in quotes (as you stated) for them to work at all.

Posttop
Minollo I.Subject: Re: Cannot use JAR file for function, etc.
Author: Minollo I.
Date: 22 Aug 2002 12:23 PM
Yes, you are right. Handling of paths in the Options dialog shouldn't be so
badly affected by quotes. That will be fixed.

Thanks,
Minollo

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.