Pregunta

Me parece que esté recibiendo el siguiente error al intentar acceder a una clase Java a distancia (en primavera / BlazeDS) de la aplicación Flex / Cairngorm. Me estoy volviendo loco en este momento tratando de ver lo que está mal - cualquier ayuda sería muy apreciada. - Gracias a Mike

**Error: C0007E: RemoteObject not found for mycomponentsService
    at RemoteObjects/getService()
    at com.adobe.cairngorm.business::ServiceLocator/getRemoteObject()
    at com.nomura.dashboard.client.business::DashBoardDelegate()**

Todos mis archivos de configuración están a continuación:

Cairngorm - BusinessDelegate.as

this.service = ServiceLocator.getInstance().getRemoteObject("**mycomponentsService**");

Cairngorm - Services.mxml

mx:RemoteObject id="mycomponentsService" 
                destination="remotecomponentService" 
                showBusyCursor="true">

Primavera / BlazeDS - aplicación-config.xml

flex:remote-service ref="remotecomponentService" 

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

Primavera / BlazeDS - services-config.xml

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

El web.xml también contiene referencias de primavera - ver más abajo

<?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>
¿Fue útil?

Solución

Podemos ver a su web.xml también, por favor? Me sorprende ver la palabra "Primavera" en la URL de punto final. Mis puntos finales siempre han mirado como

url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf"

ej .: Creo que su services-config.xml debe ser de la misma familia.

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

Me Tampoco sugiero hardcoding la URL de punto final tanto. Sólo tiene que ir con

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

Actualización:

Aceptar, por lo que su web.xml se ve bien, al igual que con la spring en su URL. Lo que yo no ver en el archivo de configuración de Spring (application-config.xml) es la correlación de URL de primavera. Por ejemplo, en mis archivos de configuración de la primavera, además de las definiciones de frijol, existe un mapeo. Por ejemplo:.

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

(tengo una aplicación que está basado en la primavera, y otro que utiliza BlazeDS, pero no tanto ... por lo que podría estar pasando algo. Dicho esto, lo que estoy pidiendo aún debe ser válida. En la teoría. Pero tomarlo con un grano de sal.)

Tal vez algunos algunos depuración súper básica está en orden. Se puede comprobar para ver si las llamadas a su servidor están regresando HTTP 404 o no las tesis en los puntos finales de problemas? Un par de maneras de hacer esto:

  • Compruebe los registros de acceso para GET /dashboard-server/spring/messagebroker/amf. ¿Cuál es el código de estado HTTP para estas solicitudes? (gratuito, fácil, no hay nuevas herramientas.)
  • Si está utilizando Firefox como navegador, añadir el de sabotaje datos en el enchufe. usted no tiene que manipular los datos, pero que muestra lo que se está llamando, lo que se devuelve, y todas las cabeceras HTTP.
  • Utilice una herramienta de protocolo sniffer de Flash / Flex orientado por completo, como Charles web proxy de depuración .

Será muy útil para reducir el problema de saber si el que dichas solicitudes están fallando en la pila de comunicaciones.

Otros consejos

He adjuntado Web.xml a continuación. En cuanto a la palabra "Primavera" - Estoy utilizando el archivo WAR BlazrDS / integración muelle estándar que requiere "primavera" de estar allí. El bean id = "remotecomponentService" es acutally un grano de primavera.

¿Estás diciendo que incluso con la BlazeDS / GUERRA primavera Puedo usar su solución anterior?

El web.xml también contiene referencias de primavera - ver más abajo

<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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top