I've been playing with the trial version of the software and am attempting to set up a data source in FormMaker to use Apache Derby. I have followed the advice suggested in the FAQ at
http://www.hyfinity.net/wmforum/showthread.php?tid=94.
FormMaker still complains with a ClassNotFoundException. I've also tried placing the Derby client jars in the tomcat shared lib, as well as in the formmaker/WEB-INF/lib on the design tomcat. Still no change. Is the JDBC configuration disabled for the trial version of Hyfinity WebMaker?
Thank you,
Mike
http://www.hyfinity.net/wmforum/showthread.php?tid=94.
FormMaker still complains with a ClassNotFoundException. I've also tried placing the Derby client jars in the tomcat shared lib, as well as in the formmaker/WEB-INF/lib on the design tomcat. Still no change. Is the JDBC configuration disabled for the trial version of Hyfinity WebMaker?
Thank you,
Mike
RE: jdbc client jars
One thing to check is that the Design tomcat server has been restarted after putting the JDBC Jar into the common/lib directory.
I have not used Apache Derby previously, but having done a quick test it seems like it should work ok. I placed the 'derbyclient.jar' into the tomcat-design/common/lib directory, and then set up a new database using a driver name of 'org.apache.derby.jdbc.ClientDriver' and a connection URL of 'jdbc:derby://localhost/databaseName'.
With these details, FormMaker gives me an error 'Error connecting to server localhost on port 1527' which makes sense as I haven't actually set up a database yet!
I would not have thought it would have got this far if it could not find the JDBC driver classes.
It is probably worth checking your settings again, and if you are still having issues, let me know the version of Derby you are trying to use, and I can do some further testing.
RE: jdbc client jars
Here's the stack trace:
java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at com.hyfinity.dbhelper.DBHelperEngine.getConnection(DBHelperEngine.java:238) at com.hyfinity.dbhelper.DBHelperEngine.execute(DBHelperEngine.java:97) at com.hyfinity.xagent.StandardXAgent.callXMLService(StandardXAgent.java:197) at com.hyfinity.xagent.StandardXAgent.service(StandardXAgent.java:172) at com.hyfinity.xplatform.XPlatform.service(XPlatform.java:429) at com.hyfinity.xplatform.XPlatform.serviceRequest(XPlatform.java:387) at com.hyfinity.xengine.effectors.Service.callService(Service.java:223) at com.hyfinity.xengine.effectors.Service.effect(Service.java:179) at com.hyfinity.xengine.effectors.BaseEffector.effect(BaseEffector.java:195) at com.hyfinity.xengine.core.Rule.fireWithoutContext(Rule.java:197) at com.hyfinity.xengine.core.Rule.fire(Rule.java:146) at com.hyfinity.xengine.core.RuleBase.processRules(RuleBase.java:264) at com.hyfinity.xengine.core.RuleBase.forwardChain(RuleBase.java:215) at com.hyfinity.xengine.XEngine.execute(XEngine.java:95) at com.hyfinity.xagent.StandardXAgent.callXMLService(StandardXAgent.java:197) at com.hyfinity.xagent.StandardXAgent.service(StandardXAgent.java:172) at com.hyfinity.xplatform.XPlatform.service(XPlatform.java:429) at com.hyfinity.xplatform.XPlatform.serviceRequest(XPlatform.java:387) at com.hyfinity.xengine.effectors.Service.callService(Service.java:223) at com.hyfinity.xengine.effectors.Service.effect(Service.java:179) at com.hyfinity.xengine.effectors.BaseEffector.effect(BaseEffector.java:195) at com.hyfinity.xengine.core.Rule.fireWithoutContext(Rule.java:197) at com.hyfinity.xengine.core.Rule.fire(Rule.java:146) at com.hyfinity.xengine.core.RuleBase.processRules(RuleBase.java:264) at com.hyfinity.xengine.core.RuleBase.forwardChain(RuleBase.java:215) at com.hyfinity.xengine.XEngine.execute(XEngine.java:95) at com.hyfinity.xagent.StandardXAgent.callXMLService(StandardXAgent.java:197) at com.hyfinity.xagent.StandardXAgent.service(StandardXAgent.java:172) at com.hyfinity.xplatform.XPlatform.service(XPlatform.java:429) at com.hyfinity.xgate.HTTP2Java.processAction(HTTP2Java.java:1065) at com.hyfinity.xgate.HTTP2Java.doPost(HTTP2Java.java:640) at com.hyfinity.xgate.HTTP2Java.doGet(HTTP2Java.java:531) at javax.servlet.http.HttpServlet.service(HttpServlet.java:627) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Unknown Source)
Oh, and I am using version 10.7.1.1.
Thank you,
Mike[hr][/hr]
I've attached a screenshot of the directory structure for tomcat-design with the derby jars.
Mike[attachment=0]hyfinity.png[/attachment]
RE: jdbc client jars
I have done some further testing using Derby 10.7.1.1 and have been able to successfully build an application that retrieves details from the database.
Can you try editing the Database Settings for your database in WebMaker, and retype the 'JDBC Driver' value as org.apache.derby.jdbc.ClientDriver in case there are any spurious characters in there.
Also make sure there aren't any spaces at the start or end of the class name as that seems to cause issues.
Perhaps another option could be a corrupt JAR file? I have attached the version of the derbyclient.jar file that is working for me for you to try out.
These JARs only need to go into the tomcat-design/common/lib directory for the studio to work, so to avoid confusion I would remove them from any other places you may have put them. (You will also need to make sure the JAR is available to the deployed application when you get that far.)
If you are still having problems, can you let me know what version of Java is being used to run the studio, by having a look at the 'set JRE_HOME' line in d:\jprogramfiles\hyfinity\bin\startup_webmaker.bat file.
Also please confirm what version of WebMaker you are using as described here: http://www.hyfinity.com/node/30
Hopefully we can track down the cause of this issue.
Regards,
Gerard
RE: jdbc client jars
Now off to play with repeatable editable rows.
ciao,
Mike
RE: jdbc client jars
I hope you have fun with the rest of your evaluation, and please let us know if you have any further questions.