Hi Andy,
Thank you very much for your crystal clear explanation, I get it now.
Following your suggestion, I traced back the code and find that the
function below is the culprit. I wrote it in an attempt to return the
"root directory" of the Tomcat application, and it has somehow managed
to work in 32 bit Tomcat over numerous installations.
i.e. the function below, typically returns: "C:\Program Files\Apache
Software Foundation\apache-tomcat-7.0.22\", but is not working
apparently for this present 64 bit install, though on looking at it
after seven years, I must say I wonder how it has worked so long.
Is there a more direct way to get this same info.? Once I get this
string, I simply tack on the remaining part of the path to where I would
like to write the file.
Thanks much!
Paul
private static final String FILE_SEPARATOR = File.separator;
private String getRootDirAbsolutePath() {
SystemUtils systemBean = new SystemUtils();
String javaClassPath = systemBean.JAVA_CLASS_PATH;
String osName = systemBean.OS_NAME;
if(osName.equals("Linux")){
int index = javaClassPath.lastIndexOf(":");
javaClassPath=javaClassPath.substring(index+1,
javaClassPath.length());
}
String oneDirUp =
javaClassPath.substring(0,javaClassPath.lastIndexOf(FILE_SEPARATOR));
String twoDirsUp =
oneDirUp.substring(0,oneDirUp.lastIndexOf(FILE_SEPARATOR));
String rootDirAbsolutePath = twoDirsUp + FILE_SEPARATOR
return rootDirAbsolutePath;
}
On 10/11/2011 12:13 PM, Andy Stevens wrote:
Hi Paul,
Cocoon can't be compiled in 32 or 64 bit as such; it's java so is
compiled to platform-independent java byte code. The byte code is run
on a jvm, an architecture-specific application, and if you're using a
jvm with a "just-in-time" compiler that translates the byte code (or
parts of it) to native machine code to increase performance then that
will end up running 32 or 64 bit instructions. But it's all at
runtime, nothing you can do about when building Cocoon.
Judging by the error message, you're trying to open a path
("C:\Program Files\Apache Software
Foundation\apache-tomcat-7.0.22\bin\bootstrap.jar;C:\Program
Files\Apache Software
Foundation\apache-tomcat-7.0.22\bin\tomcat-juli.jar;\webtask\cds\Test_request.xml")as
a file, when obviously the string in question is a list of 3
semi-colonseparated filenames. Unsurprisingly, it complains at this
"The filename,directory name, or volume label syntax is incorrect" as
I believe semicolonsaren't valid characters in windows filenames (and
unlikely to be found evenif they were). My guess would be an error in
whatever bit of your code orsitemap is supplying the outputFile to the
XMLFragmentBean, if you can sendthe relevant bit of code I may be able
to be more
specific.Regards,Andy--http://original.justgiving.com/AndyStevens-Bikeathon2011Raising
money for Leukaemia Research----- Original Message -----From: "Paul
Joseph" <[email protected]>To: <[email protected]>Sent: Tuesday,
October 11, 2011 4:38 PMSubject: Tomcat 64 bit> Hi there,>> I am using
a Cocoon jar (Version 2.11) file compiled on a 32 bit XP in a64 bit
Tomcat (Version: 7.0.22 ) and using Java 64
bit(jre-6u24-windows-x64)>> It runs against a 32 bit Postgresql
database (V8.4).>> It all seems to work well unless I call some
special functionality in theflowscript that has to create a file on
disk. It then fails with the errorshown below:>> Question: do I need
to recompile cocoon in 64 bit--is that the cause ofthis error?>>
Paul>>> java.io.FileNotFoundException: C:\Program Files\Apache
SoftwareFoundation\apache-tomcat-7.0.22\bin\bootstrap.jar;C:\Program
Files\ApacheSoftware
Foundation\apache-tomcat-7.0.22\bin\tomcat-juli.jar;C:\ProgramFiles\Apache
SoftwareFoundation\apache-tomcat-7.0.22\webapps\array\webtask\cds\Test_request.xml(The
filename, directory name, or volume label syntax is incorrect)>
at java.io.FileOutputStream.open(Native Method)> at
java.io.FileOutputStream.<init>(Unknown Source)> at
java.io.FileOutputStream.<init>(Unknown Source)> at
java.io.FileWriter.<init>(Unknown Source)>
atorg.apache.cocoon.ojb.samples.bean.XMLFragmentBean.generateFragment(XMLFragmentBean.java:23)>>>
The call at line 23 of XMLFragmentBean.generateFrament
is:BufferedWriter out = new BufferedWriter(new
FileWriter(outputFile));>>>
--------------------------------------------------------------------->
To unsubscribe, e-mail: [email protected]> For
additional commands, e-mail: [email protected]>>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]