OpenBD Wiki

From OpenBD
Jump to: navigation, search

FAQ

Contents

General

What is the minimum requirements to run OpenBD?

You must have at least Java 1.5 installed and properly available on your system. Older versions of Java will cause some problems as there was some fundamental changes between Java 1.4 and 1.5. Most Java applications are forward compatible so you should have no problems in upgrading.

What do I need to run OpenBD?

OpenBD is a J2EE application. In other words it requires a J2EE application server in which to run. OpenBD ships as a standard J2EE WAR file, which is basically a specially named ZIP file with a specific directory structure. Any J2EE container will happily run OpenBD, by simply dropping it into the corresponding application deploy directory.

For a list of all the currently available J2EE servers you can visit http://www.javaskyline.com/serv.html

If you do not want to install a J2EE server separately, then OpenBD ships with a ready configured alternative using the popular Jetty application server.

What license is OpenBD released under?

The engine is released under the GNU GPL v3 license. We feel this gives the project the most flexibility and is the truest form of open source license.

What tags does OpenBD currently support?

We support as many tags as possible, including adding in a number of OpenBD specific ones. You can find the list of supported tags here.

Do you support CFCs?

Yes of course, including the ability to serialise them into [session] scopes for use in a clustered environment.

What relationship does OpenBD have with BlueDragon?

OpenBD is a fork of the original BlueDragon commercial offering from New Atlanta. This happened on the 1st May 2008. Since then the code base has developed at a different pace than BlueDragon. New Atlanta engineers still contribute a lot of bug fixes to OpenBD's code base, and will continue to do so.

BlueDragon is a fully supported commercial CFML runtime engine, with a tight test and release schedule. It operates both on the Java and natively on the Microsoft .NET platform. OpenBD is purely a Java engine.

The direction of the OpenBD project is governed by the Steering Committee, who incidentally, does not have any NA representation on it. This small group of highly dedicated individuals, gather the comments and views from the community at large and debate/decide the future of OpenBD.

What is the history of BlueDragon/OpenBD?

You can read an interview regarding that here.

Installation

For details on installation of various types, please see the installation category page.

Upgrading

Upgrading OpenBD is as simple as copying some files to your existing instance of OpenBD. The following applies to the WAR deployment of OpenBD; notes on upgrading the Ready2Run version will be coming soon.

Upgrading a WAR Deployment

  1. Download the new OpenBD WAR to your desktop or somewhere handy
  2. Unzip the OpenBD WAR (again, to your desktop or somewhere handy)
    • Either change the file extension to .zip and use your favorite zip tool (if your zip tool doesn't support WAR files), or execute jar xvf openbd.war from a terminal/command line. (Note that this assumes Java's bin directory is in your path.)
  3. Copy your existing instance's WEB-INF and bluedragon directories so you have a backup.
    • It's probably easier to copy the application's entire directory so you have a backup of everything.
    • All your existing administrator settings (datasources, etc.) are contained in WEB-INF/bluedragon/bluedragon.xml, and if you have a backup you can simply replace the default bluedragon.xml file with your old copy after the upgrade is complete.
    • The bluedragon directory contains the OpenBD administrator as well as applets and JavaScript that enable some of the native OpenBD functionality.
  4. Stop your servlet container or web app
    • If you're on Tomcat you can stop individual web apps; on other servlet containers you may have to simply stop the entire servlet container. The reason for having to do this is that some of the files in WEB-INF will likely be in use so you won't be able to replace them with new version of the files.
    • Note that if you're using proxying between a web server and your servlet container (e.g. proxying from Apache to Tomcat), you may find that individual webapps don't want to shut down because there are open connections that the web server isn't terminating. If you stop an individual web app and can still hit it in your browser, shut down the servlet container to make sure you can overwrite the files successfully.
  5. Delete the WEB-INF and bluedragon directories from the existing web application
  6. Copy the WEB-INF and bluedragon directories from the OpenBD WAR file you unzipped in step 2 above into your web application directory.
  7. Replace the new WEB-INF/bluedragon/bluedragon.xml file with your old copy if you have admin settings you want to retain.
  8. Restart the web app or servlet container.


Tag Help

How can I export my queries to MS Excel?

This was a tip originally posted on the OpenBD mailing list by Chris Blackwell, who noted that Excel can happily import properly formatted HTML tables. You can force your page to 'pretend' to be an XLS by forcing the content type to Excel. You can either print out your query in nicer format, or simply dump it to the browser using CFDUMP.

<cfheader name="Content-Disposition" value='inline; filename="report.xls"'> 
<cfcontent type="application/vnd.ms-excel" reset="true">
<cfdump var="#myQuery#" expand="true">

Does SSL work with CFLDAP?

Yes, with a bit of configuration. This came up in a question from Tom Jones on the OpenBD mailing list. Paul Bonfanti responded with a link to an FAQ on New Atlanta's site:

The CFLDAP tag can be used with SSL using the following steps:

  • In the CFLDAP tag, set the port attribute to the value of the LDAP server's SSL port. The default port for SSL with LDAP is 636.
  • In the CFLDAP tag, set the secure attribute to CFSSL_BASIC.
  • Install the LDAP server's certificate in the database of trusted certificates for the JRE being used by BD JX or BD J2EE. This is done from the command line using the following steps:
cd JAVA_HOME/lib/security
keytool -import -file ldap_server_cert.cer -keystore jssecacerts

For example, if BD J2EE is running with JDK 1.6 on Windows then the value of JAVA_HOME for the JRE would be: C:\Program Files\Java\jdk1.6.0\jre.

If you don't install the LDAP server's certificate in your JRE's database of trusted certificates then you'll receive the following General Runtime Error:

javax.naming.CommunicationException: simple bind failed: test.newatlanta.com:636 
[Root exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: 
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: 
unable to find valid certification path to requested target]; ROOT CAUSE=sun.security.validator.ValidatorException: 
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: 
unable to find valid certification path to requested target

If you hit a non-SSL port with secure set to CFSSL_BASIC then you'll receive the following General Runtime Error:

javax.naming.CommunicationException: simple bind failed: test.newatlanta.com:389 
[Root exception is javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?]; 
ROOT CAUSE=Unrecognized SSL message, plaintext connection?

How do I use Stunnel to connect to GMail with CFPOP and CFMAIL?

Gmail requires SSL (TTLS) to connect to its services.

OpenBd can connect to GMail using Stunnel to encrypt the connection.

  • Download then install Stunnel. http://www.stunnel.org/
    • Edit the sTunnel configuration file (stunnel.conf)
    • Clear everything from the stunnel.conf and add the following.
client = yes
debug = debug 
[pop3s]
accept = 127.0.0.1:1109
connect = pop.gmail.com:995
[smtps]
accept = 127.0.0.1:259
connect = smtp.gmail.com:465
  • Log on to the BlueDragon Administration and add the following to your Mail Settings replacing the information with your account info.
SMTP Server: youremail@gmail.com:yourPassword@127.0.0.1
SMTP Port: 259
  • CFPOP can be used by pointing to the STunnel host
<cfpop
 server = "127.0.0.1"
 port = "1109"
 username = "youremail@gmail.com"
 password = "yourPassword"
 action = "getAll"
 name = "popGoesTheGmail"
 attachmentPath = "#ExpandPath('./gmailattachments')#"
 timeout = "60"
 maxRows = "1"
 startRow = "1"
 generateUniqueFilenames = "yes">
  • CFMAIL can be used the same way it is used on any other mail server.
<cfmail 
from="youremail@gmail.com" 
to="youremail@gmail.com" 
subject="TESTING GMAIL/STUNNEL ON OPENBD">
IT WORKS! smtp.gmail.com port 465, TTLS enabled
</cfmail> 

Web Services

Why do I get the error "java.lang.NoClassDefFoundError: sun/tools/javac/Main" when calling a web service?

If Open BlueDragon throws an internal error while attempting to add a web service, and the stack trace begins with "java.lang.NoClassDefFoundError: sun/tools/javac/Main", this indicates that you do not have Java's tools.jar in your classpath. To resolve this issue, either add the appropriate tools.jar to your classpath or copy tools.jar to Open BlueDragon's WEB-INF/lib directory.


Personal tools