Posts Tagged ‘Weborb’

BlazeDS and Weborb

Thursday, April 1st, 2010

In the last few projects we have been working on, I had the chance to work on two competing Flex messaging technologies: BlazeDS and Weborb.

Here are a few of my observations and comparisons:

Weborb returns Array, while BlazeDS returns ArrayCollection, when returning a List (from Java).

Weborb seems to need less configuration than BlazeDS, while BlazeDS is more strict. For example, in Weborb we can use the GenericDestination and it will catch all requests for services, while BlazeDS needs a configuration for each service in the remoting-config.xml like this:

    <destination id="applicationService">
        <channels>
            <channel ref="normal-amf"/>
        </channels>
        <properties>
            <source>*</source>
        </properties>
    </destination>

BlazeDS has infinite more online documentation, while Weborb relies on paid support from Midnight Coders.

BlazeDS has better (easier to control) logging:

Place the following inside: WEB-INF/flex/services-config.xml

    <logging>
        <target class="flex.messaging.log.ConsoleTarget" level="Debug">
            <properties>
                <prefix>[TradeNovaFX]</prefix>
                <includeDate>true</includeDate>
                <includeTime>true</includeTime>
                <includeLevel>true</includeLevel>
                <includeCategory>true</includeCategory>
            </properties>
            <filters>
                <pattern>Endpoint.*</pattern>
                <pattern>Service.*</pattern>
                <pattern>Configuration</pattern>
            </filters>
        </target>
    </logging>

A little hint with BlazeDS: DON’T add remoting-config.xml and messaging-config.xml on the backend. It will only give problems!

BlazeDS has what I consider a huge bug when serializing/converting a Number with the value NaN to a Java value. Basically NaN is converted to 0, instead of null. This can break code that relies on null values, which is very commonplace in backend programming.

Luckily the guys at Farata has a couple of solutions for this.

Post to Twitter