Java :: BlazeDS: Some Class Instances Already Created On The Server Are Unavailable From Flex?
Feb 10, 2011
I have a question about the Java Factory; I've read somewhere that: "... the JavaFactory will check if there is already an instance in the scope and return that. If the object is not available then it is instantiated ...", but I don't understand the expression "if the object is not available"?I am having trouble to find and/or assign classes already instantiated (by another class) in the server, to a declared destination.
I'm developing an application in Java: J2EE.I'm running it on a Tomcat 6 server I'm using BlazeDS to communicate with Flex. I'm using the RPC's Remoting Service (through RemoteObjects)There are two java classes that handle Client (Flex) interaction, say ApplicationClass and UserApplicationClass:
ApplicationClass has a reference
(attribute) to a UserApplicationClass
instance
I have a java class which has been deployed as WAR web application in a BlazeDS/Spring server sitting on JBOSS. Apart from the Flex application which will access the WAR file, I also need to start some server side process's which will initiate BlazeDS "pushes" to the Flex client via AMF messaging.
What is the best way to implement this server side process? - Should it just be a class with a main() method in the WAR file which gets called from the command line? Can this be done - not sure you can run a class in a WAR file from command line? - Should it just be a class with a main() method in a JAR file which gets called from the command line? Not sure what the standard practise here is. The key is that the process needs to be started on the BlazeDS server to push data out (not on the Flex client).
I've noticed BlazeDS has certain things it does not support and it is often difficult to find this out. Ex: polymorphism is not.One must create methods with different names as methods with the same name with different parameters create a conflict.I'm trying to find out if BlazeDS does not support Java static and non-static inner classes.
public class UserDTO { private String name; private AddressDTO adddress; private PhoneDTO phone;
[code]...
The example code above will compile and the getUser method will work. A call to the updateUser or updatePhone methods on the other hand results in a BlazeDS error. Is there a special way to use inner classes in Flex or are inner classes not supported?
Here is an example of the error messages produced:
[BlazeDS]Cannot create class of type 'com.test.dto.UserDTO.PhoneDTO'. flex.messaging.MessageException: Cannot create class of type 'com.test.dto.UserDTO.PhoneDTO'. Type 'com.test.dto.UserDTO.PhoneDTO' not found.
Example Flex code:
var thisPhone:PhoneDTO = new PhoneDTO(); thisPhone.phoneNumber = "8885551212"; updateTagsResult.token = userService.updatePhone(thisPhone);
I have Flex/AIR app that connects to a tomcat server via BlazeDS. I'm not finding that I have to integrate an old webapp (struts/jsp) and I'd like to keep that webapp untouched except for login, authentication and session handling. Also a 3rd java app that uses httpclient.
Currently I have some blazeDS remote objects to handle login/logout with a few RPC calls. In turn, FlexSession objects are created and handled. Is there a way to use httpclient and javascript to call those blazeds RPCs so I dont have to recode and have 3 different means to handle logins and sessions?
As a first step getting a Hello World Flex-to-Java application to compile and run I followed: [URL] And it ran successfully. However now I wish to automate the build in Maven. How to specify the Flex Server location in the pom.xml?
I have a server with some simple java objects running. I want to build the client with Flex and connect to the server data with BlazeDS. The problem is the Flash Builder is not generating the Classes correctly. Just the properties are being generated, the inheritance are not being generates.
I seem to be getting the following error when I try to access a Remote Java class (on Spring/BlazeDS) from the Flex/Cairngorm application. I am going crazy at the moment trying to see what is wrong
I am using Flex 3 and make a call through a RemoteObject to a Java 1.6 method and exposed with BlazeDS and Spring 2.5.5 Integration over a SecureAMFChannel. The ActionScript is as follows (this code is an example of the real thing which is on a separate dev network);
i am working on a flex+java combined project.My IDE and computer configuration is as follows:
[Code]...
When i make a small change in Flex code (eg, reposition of a button...anything), and run the project on server, it does make any change on output. Actually it depends on my luck... because it makes change in output randomly.what is is happening? tried rebuild, republish, clean , restart server, restarting the IDE, restarting the computer all available feature i could think. Also, i created a simple flex project on IDE and compiled it..... everything is compiled and displayed on output.
Right away i just try to explain my problem: Using BlazeDS i got the following Javaclasses:
[Code]...
Then i got a Flex service class calling BlazeDS and executing the getCategories java method. Since Flash dosn't seem to understand typed arrays, the result from that method which i get back in flex is a simple array of untyped objects (the mapping dosn't seem to work here, even tought the class category exists in flex and has the same properties). thats the first thing. but however, i'm converting the untyped objects manually into objects of the category.as class. the second thing is that categories have child-categories within the java object, which are also ArrayLists of the type category.java. the problem about that: my result event object only contains the first level of categories, looking into them the children are allways null. i dunno why they are empty, since they ARE part of the java object category.
and the third thing (the strangest by fast), you maybe noticed i named the properties of the category.java class strange, like idCat and nameTest instead of simply id and name. why that? because the property names of my flex result objects dont seem to change when i change the java objects properties names (result object properties are named "id" and "name" but the java class object properties are named "idCAT" and "nameTEST"). that it REALLY strange, since if i set the properties, like you see at nameTEST = "TESTNAME" it IS recogniced by flex, only the proertyNAMES dont seem to be recognized at all.
I'm coding a web app in flex blazeds and Java. I installed the Eclipse plugins for using WTP mixed project. I'm using flex's server that uses an emulate of tomcat when i ran my flex service the web app got the datas, everythings is ok. the problem is when i copy the project with all files generated by flex in my tomcat or the blazeds's tomcat, it doesn't work, this is becasue i want to implement my app on a server the error is:[code] i don't know why tomcat doesn't find the class of flex.messaging.endpoints.AMFEndpoint that is used for my-amf 'URL...'. all works well in the emulated server that flex has.
I've run into a bit of a wall with sending messages from BlazeDS on the server to Flex clients. I have my adapters and destinations set properly (I think) messaging-config.xml and my streaming channel setup in my services-config.xml files. The messages work beautifully in Safari (Mac and PC) but no other browsers.
[Code]...
I feel like things are setup correctly in the channel definition but, perhaps, some of those user-agent settings are off (I have played with their settings, to no avail thus far).
I've run into a bit of a wall with sending messages from BlazeDS on the server to Flex clients. I have my adapters and destinations set properly (I think) messaging-config.xml and my streaming channel setup in my services-config.xml files. The messages work beautifully in Safari (Mac and PC) but no other browsers. relevant Bits from messaging-config.xmlAdapter:Destination:
We are using GraniteDS autogenerated AS code to map Java remote objects to AS.
We have objects that contain List sites in Java so when they are converted to AS it looks like:
JAVA: private List<MyObject> territories;
Actionscript: private var _territories:ListCollectionView;
The trouble is we are using MXML databinding to bind the contents of that list generically, the trouble is we never reference the type of object contained in the list explicitly so it's never compiled into our SWF is there any way to ensure that objects in a list for a RemoteClass is compiled in?
My name is Rahul.I am new to flex. I am trying to integrate flex with blazeds using java. I have written some code as per my knowledge. But it is not connecting to database. I am pasting my code here.Please look into this and let me know if i have done any mistakes over there:
[Code...
If i try to execute the Feedback.mxml then i am getting "Sorry your feedback is not entered" as output.I dont know where the problem is.I think flex is connected successfully but problem is in java code.
I'm starting a flex+blazeds project. First I coded some server classes, and modified xmls (in WEB-INF). Now I want to test it with client. There (in Flash Builder) it's needed to specify path to folder where server lives. The problem is that I cannot find it. In the same time [URL] is found in browser.
I using messaging in Flex-BlazeDS. When the AIR client starts it connects to a destination and a specific subtopic. During runtime, the user can use a combo box to subscribe to different sets of live data coming in, this combo box change event changes the subtopic by:
A message is then sent to the server with the new subtopic name as well so the server knows to send to a new subtopic. This whole mechanism seems very glitchy and I'm wondering if anyone else has tried this and succeeded? Most times it works the first time and the after that either the messages dont get sent or I get server errors like:
[BlazeDS]Endpoint with id 'my-streaming-amf' cannot service the streaming request as either the supplied FlexClient id 'B07F3285-A408-816E-4697-F13F9B17E32C is not valid, or the FlexClient with that id is not valid.
Also sometimes when I change subtopics it will cause the FlexSession and FlexClient to be destroyed instead of just the MessageClient. Once that FlexSession gets destroyed it messes up all kinds of things including logging out the user.
Perhaps I'm over complicating things by changing subtopics to listen to different sets of live data, if anyone has any other ideas on how to accomplish dynamic changing of destinations or subtopics please list those as well.
When I pass a Actionscript Value Object that contains a Date variable using BlazeDS it is not getting transferring as a java.util.Date object correctly. When the setBaseDatefunction gets called on the Java side the baseDate value is NULL. The weird thing is if I rename the variable on the Java side to private Date date; and create a public void setDate( Date date) function it works. The problem is I need to pass 2 different dates so I can't uses this work around.
Here are my 2 classes: AS3 package com.shua.flex.valueobjects { [Bindable] [RemoteClass(alias='com.shua.valueObjects.myVO')] public class myVO { public var label:String; public var endDate:Date; [Code] .....
What's the best way to secure a Flex-BlazeDS application? I've googled it an several solutions came up.UPDATE after question from jsight:Flex would login, so on the RemoteObject I'll set Credentials I don't know if there comes authentication and authorization with BlazeDS (WebORB for instance does and WebORB looked at BlazeDS for their product) SSL not needed 've seen some links on the internet talking about spring security, so I'll check that out.
I developed an application using flex+java+blazeds with tomcat that provide flex enviroment.I want to deploy my application using tomcat but I can't, how can I deploy my app?
We have a Flex-BlazeDS-Spring-JMS application. The issue is sometimes we get a Blazeds error: NoSuchMethodException. It is not able to find the Java service. The weird issue with this it does not happen all the item...1 time it goes through and returns the result, the 2nd time it fails, 3rd time fails and so on. Also not all methods fail, only 2 method calls fail.
My team are putting together a proof-of-concept Flex application sitting on top of a Spring-based server using BlazeDS.We do quite a lot of date calculations, so we use Joda Time extensively throughout the code and in our domain model.We're now trying to figure out how we can continue to use Joda Time in our DTOs that are sent back-and-forth with the Flex frontend via BlazeDS.
Our goal is to use the Actionscript 3 data type Date on the Flex side and have that map to our use of Joda time's DateTime, LocalDate and LocalTime types on the Java side.We can solve the problem of converting Actionscript 3's Date type when calling Java with a custom type marshaller plugged into BlazeDS, but this appears to only be invoked for the Flex->Java/BlazeDS direction and not for the Java/BlazeDS->Flex direction.
I'm now looking at custom PropertyProxy implementations for BlazeDS, but this doesn't look like the right thing either.The other idea was to implement Externalizable on our Java DTOs, but this seems like too much work, especially when I look at the BlazeDS rival GraniteDS and that shows plugging in Joda Time support in their documentation with a simple type converter!
I've been trying to find the right configuration for supporting both http/s requests in a Flex app. I've read all the docs and they allude to doing something like the following:
I'm running with Tomcat 5.5.17 and Java 5.The BlazeDS docs say this is the best practice. Is there a better way? With this config, there seems to be 2-3 retries associated with each channel defined in the default-channels element so it always takes ~20s before the my-amf channel connects via a http request. Is there a way to override the 2-3 retries to say, 1 retry for each channel?
I am developing a IT Monitoring Dashboard for the company I work at. The system will primarily perform monitoring of files, databases and servers. There will be a small part of the system which will allow the users to configure static data about the system eg: file locations, server names etc...
So as the app. will be a dashboard a lot of the application will consist of publishing data to the flex client to update all the monitoring views. So there will be limited database activity ie: insert/update/deletes.
I have been developing an application(a website to be more precise) which consists of a flex front end which is constantly sending and receiving data from the back end which is programmed in java. The connection between the two components is being done through blazeds. This worked fine while I was running it locally, however when I uploaded both sides of the application to a tomcat server(online) the following error is being returned when a connection between the components should occur:URL...I have read around about this error and many seem to getting this error when making connections between different servers, unlike here, where the connection is occurring within the same server.
I have my flex object embedded to JSP page.The JSP page retrieves user information like user name and group from portal profile object and stores in http session parameters. The flex Object makes a remote call to Employee.class to perform persona based operation.
I retrieved the session id in JSP and also in the Employee.class both are same. But I am not able to retrieve the username stored in the http session from FlexSession. I read in the internet that the FelxSession will hold all httpSession information as well. It's always coming as null. Correct me if I am wrong.
I'm using BlazeDS to remote some Java objects that I'm consuming in a Flex application. I'm getting a type coercion error with one of my classes that I can't for the life of me figure out. I have other classes that are working fine using the same data types, and I've gone over my mapping a dozen times. I'm following all of the necessary conventions for getters and setters as far as I know...
Anyhow, my question is: how can I debug this problem? Running the Flex app in debug mode spits out some generic errors to the console that don't really help much (TypeError: Error #1034: Type Coercion failed: cannot convert Object@5d1d809 to valueObjects.SomeClass.).
Am facing issue with session timeout. Say for instance, the user logs into the application and he waits for 30 mins (session timeout time) and then tries to get a service through remote object.Ideally speaking, since the session has timeout the user shouldn't be able to hit the remote object, but this is happening the other way round.
In a custom MessageAdapter written for a BlazeDS Java server, is there any way to access HTTPSession and HTTPRequest in a custom MessageAdapter.I'm trying to adapt an existing COMET JSON long-poll messaging system to BlazeDS and we use HTTPRequest parameters to specify message sending/polling paramers (such as a unique ContextID for any given page for a user). Is there any type of HTTPSession information we can retrieve in MessageAdapter receiveMessage()?
If I can't access the HTTPRequest (I'm not sure we can even customize it if we're using the standard Producer, Consumer Actionscript classes anyways), is there a way to uniquely identify a given FlexClient long-poll from another long-poll from that client (e.g. if the same HTTPSession user has a tab open to the same Flex application is there any way to uniquely identify that user?).