Log In | Sign Up   View a printable version of the current page.
  Dashboard > flexive > Home > FAQ

Added by Daniel Lichtenberger, last edited by Daniel Lichtenberger on Dec 09, 2008  (view change)
Labels: 
(None)

The [fleXive] FAQ

About [fleXive]

Basics

[fleXive] is a Java EE 5 open-source (LGPL) framework for the development of complex and evolving (web-)applications. For further information, please visit the fleXive website.

What are [fleXive]'s key features?
  • Dynamic data definition and manipulation
  • Fine-grained security model
  • Query language
  • Internationalization/Multi-lingual contents
  • Plugin architecture
  • Caching and Clustering
  • Integration through Java EE
What application server/database do I need to run [fleXive]?
  • Java 5+
  • JBoss 4.2 or Glassfish 2, although in theory any JavaEE 5 application should work
  • MySQL 5.0+
Is [fleXive] a CMS (Content Management System)?

No, it is a Java EE framework for content handling. While it lacks CMS features such as templating, it may be used for developing custom CMS- or DMS-like solutions.

Working with [fleXive]

Where can I find documentation/examples?

The reference documentation contains installation guides, tutorials/examples and documentation on all [fleXive] framework features.

I downloaded [fleXive]. What next?
Can I use the [fleXive] framework in my own application?

Yes, all you need to do is include the [fleXive] runtime libraries and setup your Java EE deployment descriptors. An example of integration into another application is described in the chapter on JBoss Seam.

Do I have to use JSF for my web frontend?

[fleXive] provides out-of-the-box components that greatly simplify handling [fleXive] contents in a web application (e.g. input/output components). However, the framework itself does not depend on a web framework.

Does [fleXive] support [my application server]?

[fleXive] is actively developed and tested on JBoss and Glassfish. However, we're keen to add support for other application servers, so if you need help just contact us.

What is the backend administration?

The backend administration is a stand-alone web application that is included in a [fleXive] installation by default. It provides generic content and data structure editors and an administration for all [fleXive]-related management tasks (e.g. accounts or workflows).

What is the default username/password?

After an initial installation the crediantials for a user with Global Supervisor permissions are User: supervisor Password: supervisor
The credentials for the Global Configuration are User: admin Password: adminadmin

I do not want/need the backend administration (size, licensing). How to get rid of it?

Remove flexive.war from your EAR file, and drop the corresponding entry in your application.xml. You also should remove lib/flexive_backend.jar, since it contains the Java classes of the backend UI.

To disable the backend application in all EARs built from the distribution, remove the flexive-dist/applications/flexive-backend folder.

Licensing

Which open-source license does [fleXive] use?

The [fleXive] framework is released under the GNU LGPL.
The backend administration application is licensed under the GNU GPL.

Can I do closed-source/commercial development with [fleXive]?

As long as your product uses [fleXive] as a library, the LGPL allows you to use any license or even do closed-source/commercial development. However, if you modify [fleXive], you have to make those changes publicly available.

The backend administration is licensed under the GPL. This affects your product if it is derived from the backend application: in this case, your (derivative) product must be published under the GPL license. If it only includes the backend application in its existing form, e.g. for easier administration or content setup, your product is not affected by the GPL.

Troubleshooting

Backend Administration

Firefox: Context menus are not working

Some distributions of Firefox prevent custom context menus by default. To enable custom context menus, open Edit / Preferences / Content, and enable "Disable or replace context menus" in the "Advanced..." dialog of JavaScript.

There might also be an issue with antivirus software. Kaspersky for example scans network traffic which can disable the context menu or Ajax calls. Try disabling "Network Attack Blocking" in "Online Security".

[fleXive] core engines

The FxSQL ORDER BY clause does not work

There is a bug in older versions of MySQL 5.0 that does not apply ORDER BY on column values generated with a subselect. We have verified this issue with MySQL 5.0.24/Linux. Please upgrade your MySQL version to the latest stable release (at the time of this writing, MySQL 5.0.45 does not have this bug). To check if this issue exists with your version of MySQL, execute the following SQL in the MySQL query browser:

SELECT id, (SELECT sub.FCLOB FROM FX_CONTENT_DATA sub WHERE 
sub.id=filter.id AND sub.ver=filter.ver AND sub.fclob IS NOT NULL LIMIT 1) p1
FROM FX_CONTENT_DATA filter
ORDER BY p1 DESC

If the result is ordered by p1 in descending order, you are not affected by this bug.

A fulltext search doesn't return expected results

If a fulltext search does not return an object it usually means that either:

  • The word is shorter than the minimum word length of the fulltext index. In MySQL, only words with at least 4 characters will be stored in the index by default.
  • The word is defined as a stopword. For example, searching for "Welcome" will get you no results in MySQL because welcome is a stopword.

A list of stopwords can be found here.
To change the stopwords you you have to modify your MySQL configuration file:

[mysqld]
ft_stopword_file="C:\\MySQL\\stop.txt"

To change the minimum word length of the fulltext index, set the ft_min_word_len parameter:

[mysqld]
ft_min_word_len=1

Decreasing the minimum word length will make your fulltext search more complete, but it will also lead to larger indices, less performance, and possibly worse search results.

Next, restart your MySQL server and reindex the fulltext table:

REPAIR TABLE FX_CONTENT_DATA_FT QUICK;

This info is taken from here.

Geronimo

Please note that Geronimo support is still experimental - while everything seems to be working with the application server itself, there are still some issues regarding the bundled MyFaces JSF implementation.

I keep getting out of memory errors

Please adjust your permGen space by providing JAVA_OPTS - e.g. hardcode them in bin/gernonimo.sh:
export JAVA_OPTS="-XX:MaxPermSize=128m -Xmx1024m"

MySQL

Binaries that exceed a certain size can not be uploaded

Adjust my.ini by increasing the maximum packet size. The JDBC driver can only transmit binaries using a single packet, hence the packet size has to be adjusted to the largest expected binary. The MySQL documentation recommends values up to 1GB.
Locate your my.ini file and adjust or add this value:

max_allowed_packet=512M

I keep getting Error 1607 when I try to install the [fleXive] schema

Make sure you use a supported version of MySQL! The latest 5.0 stable version should work (if it does not please post a bug).
From the 5.1 branch version 5.1.23 is known not to work!
5.1.22 should work fine and can be downloaded here

Creating the [fleXive] schema is slow

Try to follow the hints on the MySQL site for version 5.0 or version 5.1.
A common issue is the size of the InnoDB data files.
Increasing them might boost performance:

innodb_data_file_path=ibdata1:10M;ibdata2:500M:autoextend
# additional settings that may improve performance
innodb_buffer_pool_size = 64M
innodb_log_file_size = 64M

Please note that ibdata1 size if set to 10M which is the MySQL default. Changing this value might cause you to corrupt your current installation by removing/altering that file. Adjust these values to fit your installation.
Also make sure to shutdown the server before changing this setting.
Further information:

I keep getting wierd stacktraces on startup using JBoss

Request processing failed; nested exception is org.jboss.util.NestedSQLException: Transaction is not active: tx=TransactionImple < ac, BasicAction: -3f57fef1:c298:48708aa7:31 status: ActionStatus.ABORT_ONLY >; - nested throwable: (javax.resource.ResourceException: Transaction is not active: tx=TransactionImple < ac, BasicAction: -3f57fef1:c298:48708aa7:31 status: ActionStatus.ABORT_ONLY >)

This probably means that the transaction has already beeen failed and has been rolled back due to an earlier error. Check the logs for more detail.

If the log contains errors such as "com.mysql.jdbc.jdbc2.optional.MysqlXAException: XAER_INVAL: Invalid arguments (or unsupported command)" then add the following line to the datasource definition.

<track-connection-by-tx>true</track-connection-by-tx>
<no-tx-separate-pools>true</no-tx-separate-pools>

The info is taken from here.

Site running on a free Atlassian Confluence Open Source Project License granted to [fleXive] . Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.6.1 Build:#916 Nov 09, 2007) - Bug/feature request - Contact Administrators