How to implement a web app with blazeds+java+flex+tomcat?

有些话、适合烂在心里 提交于 2019-12-11 05:54:47

问题


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:

"(mx.messaging.messages::ErrorMessage)#0
  body = (Object)#1
  clientId = (null)
  correlationId = "B425A2A7-7D12-A982-7779-8CCBF669413C"
  destination = ""
  extendedData = (null)
  faultCode = "Client.Error.MessageSend"
  faultDetail = "Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Failed: url: 'http://172.16.8.245:8400/IEC-BLAZEDS/messagebroker/amf'"
  faultString = "Send failed"
  headers = (Object)#2
  messageId = "1CBC6020-0ED8-C4CC-3B77-8CCBF6D6621D"
  rootCause = (mx.messaging.events::ChannelFaultEvent)#3
    bubbles = false
    cancelable = false
    channel = (mx.messaging.channels::AMFChannel)#4
      authenticated = false
      channelSets = (Array)#5
        [0] (mx.messaging::ChannelSet)#6
          authenticated = false
          channelIds = (Array)#7
            [0] "my-amf"
          channels = (Array)#8
            [0] (mx.messaging.channels::AMFChannel)#4
          clustered = false
          connected = false
          currentChannel = (mx.messaging.channels::AMFChannel)#4
          initialDestinationId = (null)
          messageAgents = (Array)#9
            [0] (mx.rpc::AsyncRequest)#10
              authenticated = false
              autoConnect = true
              channelSet = (mx.messaging::ChannelSet)#6
              clientId = (null)
              connected = false
              defaultHeaders = (null)
              destination = "ADEscenario"
              id = "7D92EDF2-CF62-9545-BA11-8CCBF6691E6B"
              reconnectAttempts = 0
              reconnectInterval = 0
              requestTimeout = -1
              subtopic = ""
      connected = false
      connectTimeout = -1
      enableSmallMessages = true
      endpoint = "http://172.16.8.245:8400/IEC-BLAZEDS/messagebroker/amf"
      failoverURIs = (Array)#11
      id = "my-amf"
      mpiEnabled = false
      netConnection = (flash.net::NetConnection)#12
        client = (mx.messaging.channels::AMFChannel)#4
        connected = false
        objectEncoding = 3
        proxyType = "none"
        uri = "http://172.16.8.245:8400/IEC-BLAZEDS/messagebroker/amf"
      piggybackingEnabled = false
      polling = false
      pollingEnabled = true
      pollingInterval = 3000
      protocol = "http"
      reconnecting = false
      recordMessageSizes = false
      recordMessageTimes = false
      requestTimeout = -1
      uri = "http://{server.name}:{server.port}/IEC-BLAZEDS/messagebroker/amf"
      url = "http://{server.name}:{server.port}/IEC-BLAZEDS/messagebroker/amf"
      useSmallMessages = false
    channelId = "my-amf"
    connected = false
    currentTarget = (mx.messaging.channels::AMFChannel)#4
    eventPhase = 2
    faultCode = "Channel.Connect.Failed"
    faultDetail = "NetConnection.Call.Failed: HTTP: Failed: url: 'http://172.16.8.245:8400/IEC-BLAZEDS/messagebroker/amf'"
    faultString = "error"
    reconnecting = false
    rejected = false
    rootCause = (Object)#13
      code = "NetConnection.Call.Failed"
      description = "HTTP: Failed"
      details = "http://172.16.8.245:8400/IEC-BLAZEDS/messagebroker/amf"
      level = "error"
    target = (mx.messaging.channels::AMFChannel)#4
    type = "channelFault"
  timestamp = 0
  timeToLive = 0"

i don't know why tomcat doesn't find the class of flex.messaging.endpoints.AMFEndpoint that is used for my-amf 'http://172.16.8.245:8400/IEC-BLAZEDS/messagebroker/amf'. all works well in the emulated server that flex has.


回答1:


Make sure that the web.xml has a servlet for the messagebroker and that the BlazeDS libs are in your WEB-INF/lib folder.




回答2:


I don't know if you've checked that, but I've had the same dump some times because of java versions. The flex server may be using a different java version than your tomcat / blazeDS one.

Also, you shouldn't be copying your project in a tomcat server. Why don't you release your application in a war file?

What I do to make developments easier, I work directly in Flex Builder, creating a mixed Flex/Java project (I do that cause the Java part is really light), and making the application run in a Tomcat server. To make my application run in another server, I first make sure the server uses the same Java version (or later) as the one I used in my application and then I deploy the war file. And the trick is done.




回答3:


This type of problem is common.Recently, me too had struggled with this type.After 48 hrs of my research, i came to know that a small mistake make this error big as we did during deployment of webapp.

your Error Message: http://172.16.8.245:8400/IEC-BLAZEDS/messagebroker/amf'

This Error message occurs when you are not perfectly deployed in your servers webapp. For example, you created "IEC-BLAZEDS" folder in webapps under tomcat in your machine. First, check whether it is running properly in ur machine.

Now, if you are going to deploy in any server and in their corresponding webapps folder, make sure that copy of "IEC-BLAZEDS" folder must be directly placed.

Definitly, it will works for you. As above modification recoverd my problem.

Hope this is helpful to you.

-Tej Ilindra An upcoming Flex Professioinal...



来源:https://stackoverflow.com/questions/2503670/how-to-implement-a-web-app-with-blazedsjavaflextomcat

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!