Accessibility
Adobe
Sign in Privacy My Adobe

Flex Flex Data Services

Adobe Exchange: The new way to discover and install plug-ins, extensions and content for the Creative Suite. Get it now

EJB and Flex Integration, V1.1

By RyanJNorris January 16, 2007
5,982 Downloads

Rating = 46 votes


An new version of Peter Martin's EJB factory with EJB3 Support for both local and remote EJBs.

Download

License: Freeware
Language:
Cost: Free
Platform: Flash Player 9
File format: ZIP | 815.0 KB

Additional extension information

Author: RyanJNorris
Author website: Not available
Date published: January 16, 2007
Approval: None
Compatible product(s): Flex 2.0

Reviews

1-3 of 3 reviews | Show all reviews


Dan2310 04-Jun-10 Rating = 3

According to the source this library does not support any other scope that "request". So it is quite useless for stateful session beans.
If you need support for the scopes "session" or "application" have a look at http://dev.3m5-extra.net/blog/2010/06/04/ejb3factory-for-blazeds/

Dan2310 02-Jun-10 Rating = 3

I tried to use an EJB3 stateful session bean but I get a new bean instance at every request. The session id is submitted at every http request, normal java beans within the WAR project works. What might be the problem? I even tried the application scope but this did not work, too.

Here's my stateful session bean:
---------------------------------------------------------------------
package test.bean;
import javax.ejb.Stateful;

import test.model.User;


@Stateful
public class UserBean implements UserLocal {
private User user;

public User getUser() {
System.out.println(this + "#getUser -> " + user);
return user;
}

public boolean isLoggedIn() {
return user != null;
}

public User login(String login, String password) {
user = new User();
user.setFirstName("Klaus");
user.setLastName("Kleber");
user.setLogin(login);
user.setPassword(password);

System.out.println(this + "#login -> " + user);
return user;
}
}
---------------------------------------------------------------------

Here's my remoting-config.xml:
---------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service" class="flex.messaging.services.RemotingService">

<adapters>
<adapter-definition id="java-object"
class="flex.messaging.services.remoting.adapters.JavaAdapter"
default="true" />
</adapters>

<default-channels>
<channel ref="my-amf" />
</default-channels>

<destination id="login">
<properties>
<source>test.service.LoginService</source>
<scope>session</scope> <!-- This works -->
</properties>
</destination>
<destination id="user">
<properties>
<factory>ejb3</factory>
<source>Wendel FLCD Online - EAR/UserBean/local</source>
<scope>session</scope> <!-- This does not work -->
</properties>
</destination>
</service>
---------------------------------------------------------------------

Here's the output of the UserBean:
---------------------------------------------------------------------
21:34:23,926 INFO [STDOUT] test.bean.UserBean@6b0b91#login -> test.model.User@124026
21:34:38,903 INFO [STDOUT] test.bean.UserBean@170e44c#getUser -> null
21:34:43,675 INFO [STDOUT] test.bean.UserBean@e0aaf1#getUser -> null
21:34:46,452 INFO [STDOUT] test.bean.UserBean@1a009d4#getUser -> null
---------------------------------------------------------------------

PS: I'm using Blaze DS 4 and JBoss 5.1.

thenewmexican62 23-Oct-09 Rating = 3


I have been attempting to you use your contributed EJB factory.

Thanks for the work. However. My experience using this factory has been less than good.

I'm using EJB3 implemented on JBoss 5.1.
OS: Linux
JDK: 1.6



Here are my findings.

1) The entry in the flex/remoting-config.xml that is described in your read me
is incorrect.
instead of <source>come.beanclass.EJBName</source>
it should be <source>someJNDINameSpaceEJB</source>

2) The remote interface does not work at all. Only the local. However, this may not be the fault of yours or BlazeDS. It could be a permissions issue.

3) I could not pass a custom Class instance to the EJB method directly.
ie.. someEbj.processUsing(myCustomClassInst);

instead. I had to declare an array and push the myCustomClassInst into the array as such var params:Array = [];
params.push(myCustomClassInst);

someEjb.processUsing(params);

In the first calling scenario I could see via logging, that the myCustomClassInst
was being serialized just fine. However the processUsing(myCustomClassInst)
method was never called, in either local or remote invocation.

The local invocation works fine with the Array argument being passed,
but, not a custom argument directly.

Thanks again.

Add a review

(+) Please log in to submit a review