You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by ZongoZongo <nr...@gmx.net> on 2006/11/29 11:09:48 UTC
Problem with Java and Flowscript
Hi
I have a Problem to import a javaclass in flowscript. The poblem doesnt
arise with simple javaclasses. The code is tested and works in the eclipse
enviroment.
Ok, now the sourcecode:
##########################
package de.doccollector.binding;
import de.doccollector.*;
import java.sql.*;
import java.util.Vector;
import java.util.Iterator;
public class ManageObjects{
public static Objects load(Objects objects){
Vector vector = new Vector();
//create DB connection
JDBCConnection conn = new JDBCConnection();
try{
Statement stat = conn.getStatement();
ResultSet rset = stat.executeQuery("SELECT name FROM Object WHERE
entrance=0");
while(rset.next()){
vector.add(rset.getString("name"));
}
}
catch (SQLException sqle){
System.err.println(sqle);
}
conn.close();
objects.setObjectList(vector);
return objects;
}
public static void save(Objects objects){
Vector vector = objects.getObjectList();
JDBCConnection conn = new JDBCConnection();
try{
Statement stat = conn.getStatement();
stat.executeUpdate("UPDATE Objects SET entrance=0");
Iterator iterator = vector.iterator();
while(iterator.hasNext()){
String objectName = (String)iterator.next();
stat.executeUpdate("UPDATE Objects SET entrance=1 WHERE name=\"" +
objectName +"\"");
}
}
catch (SQLException sqle){
System.err.println(sqle);
}
}
}
###################
This class takes a javabean and loades and saves the fields respectively. I
call this in flowscript as follows:
###################
var objectBean = new Packages.de.doccollector.binding.Objects();
importClass(Packages.de.doccollector.binding.ManageObjects);
objectBean = ManageObjects.load(objectBean);
###################
Following error occurs
##################
org.mozilla.javascript.EvaluatorException: "file:/C:/Programme/Apache
Software Foundation/Tomcat
5.5/webapps/cocoon/doccollector/flows/configuration.js", line 13: Failed to
compile Java class de.doccollector.binding.ManageObjects$load:
file:/C:/Programme/Apache Software Foundation/Tomcat
5.5/webapps/cocoon/javaClasses/de/doccollector/binding/ManageObjects.java:
Line 3: The import de.doccollector is never used
file:/C:/Programme/Apache Software Foundation/Tomcat
5.5/webapps/cocoon/javaClasses/de/doccollector/binding/ManageObjects.java:
Line 4: The import java.sql is never used
file:/C:/Programme/Apache Software Foundation/Tomcat
5.5/webapps/cocoon/javaClasses/de/doccollector/binding/ManageObjects.java:
Line 5: The import java.util.Vector is never used
file:/C:/Programme/Apache Software Foundation/Tomcat
5.5/webapps/cocoon/javaClasses/de/doccollector/binding/ManageObjects.java:
Line 6: The import java.util.Iterator is never used
file:/C:/Programme/Apache Software Foundation/Tomcat
5.5/webapps/cocoon/javaClasses/de/doccollector/binding/ManageObjects.java:
Line 8: The public type ManageObjects must be defined in its own file
##########################
I really dont understand this. All importet classes ARE used. Besides the
type ManageObjects IS defined it its own file.
So please help me. I already spent so much time to solve this problem.
Thanks
Niclas
--
View this message in context: http://www.nabble.com/Problem-with-Java-and-Flowscript-tf2724087.html#a7596606
Sent from the Cocoon - Users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org
Re: Problem with Java and Flowscript
Posted by Patrick Refondini <pa...@pobox.com>.
ZongoZongo wrote:
> Hi
>
> I have a Problem to import a javaclass in flowscript. The poblem doesnt
> arise with simple javaclasses. The code is tested and works in the eclipse
> enviroment.
> Ok, now the sourcecode:
>
> ##########################
> package de.doccollector.binding;
>
> import de.doccollector.*;
> import java.sql.*;
> import java.util.Vector;
> import java.util.Iterator;
>
> public class ManageObjects{
>
> public static Objects load(Objects objects){
> Vector vector = new Vector();
> //create DB connection
> JDBCConnection conn = new JDBCConnection();
> try{
> Statement stat = conn.getStatement();
> ResultSet rset = stat.executeQuery("SELECT name FROM Object WHERE
> entrance=0");
> while(rset.next()){
> vector.add(rset.getString("name"));
> }
>
> }
> catch (SQLException sqle){
> System.err.println(sqle);
> }
> conn.close();
> objects.setObjectList(vector);
> return objects;
> }
>
> public static void save(Objects objects){
> Vector vector = objects.getObjectList();
> JDBCConnection conn = new JDBCConnection();
> try{
> Statement stat = conn.getStatement();
> stat.executeUpdate("UPDATE Objects SET entrance=0");
>
> Iterator iterator = vector.iterator();
> while(iterator.hasNext()){
> String objectName = (String)iterator.next();
> stat.executeUpdate("UPDATE Objects SET entrance=1 WHERE name=\"" +
> objectName +"\"");
> }
> }
> catch (SQLException sqle){
> System.err.println(sqle);
> }
> }
> }
> ###################
>
> This class takes a javabean and loades and saves the fields respectively. I
> call this in flowscript as follows:
>
> ###################
> var objectBean = new Packages.de.doccollector.binding.Objects();
>
> importClass(Packages.de.doccollector.binding.ManageObjects);
> objectBean = ManageObjects.load(objectBean);
> ###################
>
> Following error occurs
>
> ##################
>
> org.mozilla.javascript.EvaluatorException: "file:/C:/Programme/Apache
> Software Foundation/Tomcat
> 5.5/webapps/cocoon/doccollector/flows/configuration.js", line 13: Failed to
> compile Java class de.doccollector.binding.ManageObjects$load:
> file:/C:/Programme/Apache Software Foundation/Tomcat
> 5.5/webapps/cocoon/javaClasses/de/doccollector/binding/ManageObjects.java:
> Line 3: The import de.doccollector is never used
> file:/C:/Programme/Apache Software Foundation/Tomcat
> 5.5/webapps/cocoon/javaClasses/de/doccollector/binding/ManageObjects.java:
> Line 4: The import java.sql is never used
> file:/C:/Programme/Apache Software Foundation/Tomcat
> 5.5/webapps/cocoon/javaClasses/de/doccollector/binding/ManageObjects.java:
> Line 5: The import java.util.Vector is never used
> file:/C:/Programme/Apache Software Foundation/Tomcat
> 5.5/webapps/cocoon/javaClasses/de/doccollector/binding/ManageObjects.java:
> Line 6: The import java.util.Iterator is never used
> file:/C:/Programme/Apache Software Foundation/Tomcat
> 5.5/webapps/cocoon/javaClasses/de/doccollector/binding/ManageObjects.java:
> Line 8: The public type ManageObjects must be defined in its own file
>
> ##########################
>
> I really dont understand this. All importet classes ARE used. Besides the
> type ManageObjects IS defined it its own file.
>
> So please help me. I already spent so much time to solve this problem.
1. Are compiles classes from the de.doccollector.* package available to
the webapp classpath (jars in WEB-INF/lib/ or classes in WEB-INF/classes/)
2. I have no experience with Class method from flowscript.
You could quickly make your ManageObjects class a singleton and
initialise it like:
var manager = new ManageObjects();
objectBean = manager.load(objectBean);
3. You might also consider managing your JDBCConnection() with some
pooling mecanism. Opening / closing connection is know to be quite heavy.
Some persistence frameworks do that very well for you: Hibernate,
iBatis, ... In Cocoon 2.2 you can benefit from Spring integration...
Patrick
>
> Thanks
>
> Niclas
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org