简体   繁体   English

如何使用blazeds + java + flex + tomcat来实现Web应用程序?

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

I'm coding a web app in flex blazeds and Java. 我正在用Flex Blazed和Java编写Web应用程序的代码。 I installed the Eclipse plugins for using WTP mixed project. 我安装了用于使用WTP混合项目的Eclipse插件。 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. 我正在使用flex的服务器,当我运行我的Flex服务时,该服务器使用了tomcat的模拟,Web应用程序获取了数据,一切正常。 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: 问题是,当我复制项目时,flex生成的所有文件都在我的tomcat或炽热的tomcat中,它不起作用,这是因为我想在服务器上实现我的应用,错误是:

"(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 '. 我不知道为什么Tomcat没有找到类flex.messaging.endpoints.AMFEndpoint的一个用于我-AMF“ http://172.16.8.245:8400/IEC-BLAZEDS/messagebroker/amf ”。 all works well in the emulated server that flex has. 所有这些在flex拥有的仿真服务器中都能正常工作。

确保web.xml具有用于messagebroker的servlet,并且BlazeDS库位于WEB-INF / lib文件夹中。

I don't know if you've checked that, but I've had the same dump some times because of java versions. 我不知道您是否已经检查过,但是由于Java版本的缘故,我有几次相同的转储。 The flex server may be using a different java version than your tomcat / blazeDS one. Flex服务器使用的Java版本可能与您的tomcat / blazeDS版本不同。

Also, you shouldn't be copying your project in a tomcat server. 另外,您不应该在tomcat服务器中复制项目。 Why don't you release your application in a war file? 为什么不将您的应用程序发布在war文件中?

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. 为了使开发更加容易,我直接在Flex Builder中工作,创建了一个混合的Flex / Java项目(这样做是因为Java部分确实很轻巧),然后使该应用程序在Tomcat服务器中运行。 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. 为了使我的应用程序在另一台服务器上运行,我首先确保该服务器使用与我在应用程序中使用的Java版本相同的Java版本(或更高版本),然后部署war文件。 And the trick is done. 技巧就完成了。

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. 这种类型的问题很普遍。最近,我也遇到了这种问题。经过48小时的研究,我知道像在部署webapp时一样,一个小错误会使这个错误变得很大。

your Error Message: http://172.16.8.245:8400/IEC-BLAZEDS/messagebroker/amf ' 您的错误消息: http : //172.16.8.245 : 8400/IEC-BLAZEDS/messagebroker/amf '

This Error message occurs when you are not perfectly deployed in your servers webapp. 当您未完全部署在服务器Web应用程序中时,会出现此错误消息。 For example, you created "IEC-BLAZEDS" folder in webapps under tomcat in your machine. 例如,您在计算机上tomcat下的webapps中创建了“ IEC-BLAZEDS”文件夹。 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. 现在,如果要在任何服务器及其相应的webapps文件夹中进行部署,请确保必须直接放置“ IEC-BLAZEDS”文件夹的副本。

Definitly, it will works for you. 肯定地,它将为您工作。 As above modification recoverd my problem. 如上所述修改恢复了我的问题。

Hope this is helpful to you. 希望这对您有帮助。

-Tej Ilindra An upcoming Flex Professioinal... -Tej Ilindra即将推出的Flex专业课程...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM