开发者

BlazeDS data push over SSL

I have an application that uses the data push technology of blazeDS to send data to a Flex Client event 5 seconds. The application works fi开发者_运维百科ne when I run it via HTTP with or without a proxy. When I run it via https the data push doesn't work anymore. I get the following error

rootCause [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 
text="Error #2032: Stream Error. 
URL: https://localhost/admin/messagebroker/streamingamfsecure?command=open&version=1

Has anyone successfully got streaming to work over SSL?

Thanks, Pratima


Questions to ask yourself (and post here)

  • Is the request showing up in your access logs?
  • Does Tomcat/whatever server up normal HTML pages via HTTPS?
  • What do the response headers look like? Does clearing your cache change anything?
  • What browser are you using?
  • Can you set explicate caching headers?

Try one of these:

 Cache-Control: no-store
 Cache-Control: no-store, must-revalidate
 Cache-Control: no-store,max-age=0,must-revalidate
 Cache-Control: max-age=0,must-revalidate
 Cache-Control: must-revalidate


2032 is a bit of a vague error from the framework.

However, things to check (in addition to Stu's list)

Can you hit the https:// page in a browser directly?

I notice in your example that you haven't specified the port number for SSL. Unless you've gone to the trouble of setting up some Apache SSL redirects, chances are this is a mistake.

If you paste the URL into a browser, you should be able to hit it, and get an empty response. Anything else, and you've got a problem (often one that doesn't relate to BlazeDS.)

Is your certificate valid?

If you're using a Self signed cert (as is common in development), does your browser have a security exception defined? Various browsers will block attempts to hit invalid certs in different ways, but no self-resepcting browser would allow this call through until an exception has been set up.

Is your channel defined correctly?

When switching from http:// to https://, you need to update your Channel class on the flex client to SecureAMFChannel and the endpoint class in your services-config.xml to SecureAMFEndpoint.

Broadly speaking, https with BlazeDS (either push, or RPC) works just fine, assuming you configure it properly.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜