Как реализовать веб-приложение с Blazeds + Java + Flex + Tomcat? - PullRequest
1 голос
/ 24 марта 2010

Я кодирую веб-приложение на Flex Blazeds и Java. Я установил плагины Eclipse для использования смешанного проекта WTP. Я использую сервер Flex, который использует эмулятор Tomcat, когда я запускал свой сервис Flex, веб-приложение получило данные, все в порядке. проблема в том, что когда я копирую проект со всеми файлами, сгенерированными flex в моем tomcat или tomcat blazeds, он не работает, потому что я хочу реализовать свое приложение на сервере, ошибка:

"(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"

я не знаю, почему tomcat не находит класс flex.messaging.endpoints.AMFEndpoint, который используется для my-amf 'http://172.16.8.245:8400/IEC-BLAZEDS/messagebroker/amf'., все работает хорошо на эмулируемом сервере, который имеет flex.

Ответы [ 3 ]

1 голос
/ 24 марта 2010

Убедитесь, что в web.xml есть сервлет для брокера сообщений и что библиотеки BlazeDS находятся в вашей папке WEB-INF / lib.

0 голосов
/ 03 апреля 2010

Этот тип проблемы встречается часто. Недавно я тоже боролся с этим типом. После 48 часов моего исследования я узнал, что небольшая ошибка делает эту ошибку большой, как мы это делали во время развертывания веб-приложения.

ваше сообщение об ошибке: http://172.16.8.245:8400/IEC-BLAZEDS/messagebroker/amf'

Это сообщение об ошибке появляется, когда вы не полностью развернуты в веб-приложении вашего сервера. Например, вы создали папку «IEC-BLAZEDS» в веб-приложениях под tomcat на вашем компьютере. Сначала проверьте, правильно ли он работает на вашем компьютере.

Теперь, если вы собираетесь развернуть на каком-либо сервере и в соответствующей папке webapps, убедитесь, что копия папки "IEC-BLAZEDS" должна быть размещена напрямую.

Определенно, это будет работать для вас. Как выше модификация исправила мою проблему.

Надеюсь, это полезно для вас.

-Тей Илиндра Предстоящий Flex Professioinal ...

0 голосов
/ 24 марта 2010

Не знаю, проверяли ли вы это, но у меня был один и тот же дамп несколько раз из-за версий Java. Сервер Flex может использовать версию Java, отличную от вашей tomcat / blazeDS.

Кроме того, вы не должны копировать свой проект на сервере Tomcat. Почему бы вам не выпустить ваше приложение в файле войны?

Что я делаю, чтобы упростить разработку, я работаю непосредственно в Flex Builder, создавая смешанный проект Flex / Java (я делаю так, потому что часть Java действительно легкая) и заставляя приложение работать на сервере Tomcat. Чтобы приложение запускалось на другом сервере, я сначала должен убедиться, что сервер использует ту же версию Java (или более позднюю), что и версию моего приложения, а затем развернуть файл war. И трюк готов.

...