首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹性凯恩斯弹簧叶片.远程处理错误-请帮助我

弹性凯恩斯弹簧叶片.远程处理错误-请帮助我
EN

Stack Overflow用户
提问于 2009-11-05 17:36:30
回答 2查看 2.2K关注 0票数 2

当我试图从Flex/Cairngorm应用程序访问远程Java类(在Spring/BlazeDS上)时,我似乎收到了以下错误。我现在要疯了,想看看是怎么回事--任何帮助都会很感激的--谢谢迈克。

代码语言:javascript
复制
**Error: C0007E: RemoteObject not found for mycomponentsService
    at RemoteObjects/getService()
    at com.adobe.cairngorm.business::ServiceLocator/getRemoteObject()
    at com.nomura.dashboard.client.business::DashBoardDelegate()**

我所有的配置文件都在下面:

Cairngorm BusinessDelegate.as

代码语言:javascript
复制
this.service = ServiceLocator.getInstance().getRemoteObject("**mycomponentsService**");

Cairngorm Services.mxml

代码语言:javascript
复制
mx:RemoteObject id="mycomponentsService" 
                destination="remotecomponentService" 
                showBusyCursor="true">

Spring/BlazeDS - application-config.xml

代码语言:javascript
复制
flex:remote-service ref="remotecomponentService" 

bean id="remotecomponentService" 
     class="com.mycompany.dashboard.server.dao.ComponentsDAO"

Spring/BlazeDS - services-config.xml

代码语言:javascript
复制
channel-definition id="myamf" class="mx.messaging.channels.AMFChannel"
endpoint url="http://localhost:8080/dashboard-server/spring/messagebroker/amf" 
class="flex.messaging.endpoints.AMFEndpoint"

web.xml还包含Spring引用-参见下面

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4">

<!-- The front controller of this Spring Web application, responsible for handling all application requests -->
<display-name>dashboard-server</display-name>

<servlet>
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/*-config.xml</param-value>
    </init-param>

    <load-on-startup>1</load-on-startup>
</servlet>

<!-- Map /spring/* requests to the DispatcherServlet -->
<servlet-mapping>
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
    <url-pattern>/spring/*</url-pattern>
    </servlet-mapping>
</web-app>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-05 20:05:43

我们也能看看你的web.xml吗?我惊讶地看到端点URL中的单词"spring“。我的端点总是看起来像

代码语言:javascript
复制
url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf"

我认为您的服务-config.xml应该更像这样。

代码语言:javascript
复制
    <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
         <endpoint url="http://{server.name}/dashboard-server/messagebroker/amf"
                   class="flex.messaging.endpoints.AMFEndpoint"/> 
    </channel-definition>

我还建议不要对端点URL进行如此严格的编码。你就去吧

代码语言:javascript
复制
    <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
        <endpoint class="flex.messaging.endpoints.AMFEndpoint"
          url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" /> 
    </channel-definition>

更新:

好的,所以你的web.xml看起来没问题,spring在你的URL中也是一样。我在您的(application-config.xml)中看到的是Spring映射。例如,在我的Spring文件中,除了bean定义之外,还有一个映射。例如:

代码语言:javascript
复制
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
        <value>
            /histogram/**=bean.HistogramController
            /counter/**=bean.CounterController
        </value>
    </property>
</bean>

<bean id="bean.HistogramController" class="ch.comp.app.HistogramXportController"  />
<bean id="bean.CounterController"   class="ch.comp.app.CounterXportController"    />

(我有一个应用程序是基于Spring的,另一个是使用BlazeDS的,但不是both...so,我可能遗漏了一些东西。尽管如此,我所要求的仍然应该是正确的。理论上是这样。但要用一点盐来吃。)

也许一些超级基本的调试是合适的。您能否检查对服务器的调用是否在这些问题端点上返回HTTP 404?有几种方法可以做到这一点:

  • 检查GET /dashboard-server/spring/messagebroker/amf的访问日志。这些请求的HTTP状态代码是什么?(免费,简单,没有新的工具。)
  • 如果您使用FireFox作为浏览器,则添加篡改数据插件。您不必篡改数据,但它将显示调用的内容、返回的内容以及所有HTTP头。
  • 使用面向Flash/Flex的完整的协议嗅探器工具,比如Charles Web调试代理

缩小问题范围将非常有帮助,以便知道这些请求是否在通信堆栈上失败。

票数 1
EN

Stack Overflow用户

发布于 2009-11-06 09:32:46

我在下面附上了web.xml。关于"Spring“这个词,我使用的是标准的BlazrDS/Spring集成WAR文件,它需要"spring”才能出现。bean id="remotecomponentService“实际上是Spring。

您是说即使在BlazeDS/Spring战争中,我也可以使用上面的解决方案吗?

web.xml还包含Spring引用-参见下面

代码语言:javascript
复制
<web-app version="2.4">
<display-name>dashboard-server</display-name>
<servlet>
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/*-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<!-- Map /spring/* requests to the DispatcherServlet -->
<servlet-mapping>
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
    <url-pattern>/spring/*</url-pattern>
    </servlet-mapping>
</web-app>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1682274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档