Expand my Community achievements bar.

RPC fault in HTTPService.

Avatar

Level 2
I have successfully deployed my application on a server that
hosts Flex Data Services. However during a HTTPService call from my
application I get the following error. Please can someone throw
some light as what needs to be done. I know am missing a link to
define a channel for RPC call. However I am not sure how to
configure that.





[RPC Fault faultString="Send failed"
faultCode="Client.Error.MessageSend"
faultDetail="Channel.Connect.Failed error
NetConnection.Call.Failed: HTTP: Status 500"]

at mx.rpc::AbstractInvoker/
http://www.adobe.com/2006/flex/mx/internal::faultHandler()

at mx.rpc::Responder/fault()

at mx.rpc::AsyncRequest/fault()

at mx.messaging::ChannelSet/::faultPendingSends()

at mx.messaging::ChannelSet/channelFaultHandler()

at
flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()

at flash.events::EventDispatcher/dispatchEvent()

at
mx.messaging::Channel/mx.messaging:Channel::connectFailed()

at
mx.messaging.channels::PollingChannel/mx.messaging.channels:PollingChannel::connectFailed()

at
mx.messaging.channels::AMFChannel/mx.messaging.channels:AMFChannel::statusHandler()



TIA

~Shishir

3 Replies

Avatar

Level 3
Hi Shishir,



It looks like the client isn't able to establish a successful
connection to the server. Based on the HTTP status response of 500,
I'd take a close look at the server console/log during startup to
ensure that no exceptions are being thrown during initialization of
the MessageBrokerServlet.



Regards,

Seth

Avatar

Level 3
Here's a whole laundry list of things to consider:



In your HTTPService tag, have you set useProxy="true"?



If so, are you using your own destination, or are you relying
on the default destination for the proxy service, i.e. DefaultHTTP?



Have you looked at the default channels defined for the proxy
service (these are used if you have not explicity referenced any
channels in your destination)? Or perhaps you do have channels
referenced in your destination's config?



Either way, these references point to a channel definition in
the top level /WEB-INF/flex/services-config.xml. Do any of these
channel definition enpoint uris have a {context.root} token in
them? If so, did you specify a --context-root=/flex command line
argument to the mxmlc compiler or flex builder compiler when
building your SWF? Did you also specify a
--services=c:/path/to/your/services-config.xml command line
argument when compiling so that the channel definitions make it
into the SWF?



Can you test browsing to the channel endpoints and check
they're alive?



Have you got the debug version of the Flash Player? If so,
have you tried adding a <mx:TraceTarget level="0" /> to
ensure all connectivity information is reported in the trace
output?



Perhaps you're making changes to the configuration files and
forgetting to restart the server? Or perhaps Flex Builder isn't
really recompiling your SWF? Can you try forcing a clean and
recompile?

Avatar

Level 2
Hi Pete,

Thank for your reply. I have tried to answer the queries you
have put in as your reply.



>> In your HTTPService tag, have you set
useProxy="true"?

Yes,



>>If so, are you using your own destination, or are you
relying on the default destination for the proxy service, i.e.
>>DefaultHTTP?



Not Sure, but I guess the defualt destination , coz I have
not created any of my own destinations.



>>Have you looked at the default channels defined for
the proxy service (these are used if you have not explicity
referenced >> any channels in your destination)? Or perhaps
you do have channels referenced in your destination's config?

Am confused. :(. I have not defined anything of my own. No
channels, destinations, or end points.



>>Either way, these references point to a channel
definition in the top level /WEB-INF/flex/services-config.xml. Do
any of >>these channel definition enpoint uris have a
{context.root} token in them? If so, did you specify a
--context-root=/flex >>command line argument to the mxmlc
compiler or flex builder compiler when building your SWF? Did you
also specify a
>>--services=c:/path/to/your/services-config.xml command line
argument when compiling so that the channel definitions
>>make it into the SWF?



How do I specify these command line arguments to the compiler
, while compiling from within the flex builder.





>>Can you test browsing to the channel endpoints and
check they're alive?

No idea, how to do that.



>>Have you got the debug version of the Flash Player?
If so, have you tried adding a <mx:TraceTarget level="0" />
to ensure >>all connectivity information is reported in the
trace output?

No , I dont think I have the debug version, I just downloaded
the file available from the site.





>>Perhaps you're making changes to the configuration
files and forgetting to restart the server? Or perhaps Flex Builder
>>isn't really recompiling your SWF? Can you try forcing a
clean and recompile?



I have not made any changes to any of the config files, and
therefore I dont need to restart the server I guess. How do I know
if the Flex Builder is really compiling my SWF.



Even more so , with all these hindrances, I am really
baffeled by the fact that when I run my application directly from
the flex builder, the application can access the URLs and retrieve
data. However when I deploy the same onto my OC4J app server (which
has FDS) I start getting this errror. Can you please clarify why
this is so, that my application fails to access internet when I run
it from the server and also how different it is to run the
application from the flex builder than to run it from an
application server with FDS(flex data services).



In anticipation of your reply.



Thanks,

Shishir