Stephan wrote:
>>> I want to run [EMAIL PROTECTED] under windows in batikAgent Mode.
>>> Some weeks ago it worked well. Now I returned from vacation, updated the 
>>> client and now it's broken :(
> Is maybe FOP a requirement now? It is not mentioned on the wiki, but the 
> fop distribution contains also a batik-all.jar together with other libs 
> like avalon and commons that would be missing next...
>
> http://xmlgraphics.apache.org/fop/
>
> My guess is that fop-transcoder.jar is the same than fop.jar
>
> I'll give it a try, but maybe someone can confirm this.
>   
The FOP jars copied into batik folder solved the classpath checking. But 
now it won't start the java.


I've included a print to see what it is trying to start:

starting: start /B /LOW .\java -Xms256M -Xmx1350M -classpath 
.\batik-agent.jar:.\xercesImpl.jar:c:\tilesAtHome\batik\batik.jar:c:\ti
lesAtHome\batik\fop-transcoder.jar:c:\tilesAtHome\batik\avalon-framework.jar:c:\tilesAtHome\batik\commons-logging.jar:c:\tilesAtHo
me\batik\commons-io.jar org.tah.batik.ServerMain -p 18123
Can't exec "start": No such file or directory at 
lib/SVG/Rasterize/Engine/BatikAgent.pm line 165.
Error exec'ing "start": No such file or directory at 
lib/SVG/Rasterize/Engine/BatikAgent.pm line 165.


This is on a WinXP SP3, Perl 5.10.0


Looks like exec can not be used to launch "start" as this is an internal 
command of cmd.exe. Did the batikAgent work for anyone before?
I'm no perl expert. Reading http://perldoc.perl.org/functions/exec.html 
suggests that using exec is wrong anyway as it would never return.

I replaced the exec with a system call, now the starting looked a bit 
better.
        system(@cmd) == 0 or

But it opens the java folder insted of executing java due to the ".\java":
Timeout waiting for batik agent to start at 
lib/SVG/Rasterize/Engine/BatikAgent.pm line 179.


So my next modification was in batik.pm to return a path without the .\ 
in front:
                my $filepath = 
File::Spec->canonpath(File::Spec->catpath($volume, $dir, $name));

Next problem:
Exception in thread "main" java.lang.NoClassDefFoundError: 
org/tah/batik/ServerMain

A closer look at the command shows that the classpath separator for 
windows is wrong. It is separated by semicolon. So another change to 
BatikAgent.pm
    push(@cmd, '-classpath', join($^O eq "MSWin32" ? ';':':', 
$self->find_jars( @{$self->jar_list()} )));

Now it did launch the BatikAgent sucessfully.

It would be great if someone could confirm these changes and submit to 
SVN. Especially the canonpath thing is something I'm not sure about how 
it will work if java is not included in searchpath.



Stephan


_______________________________________________
Tilesathome mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/tilesathome

Reply via email to