Question

Je semble obtenir l'erreur suivante lorsque je tente d'accéder à une classe Java à distance (Spring / BlazeDS) de l'application Flex / Cairngorm. Je deviens fou au moment d'essayer de voir ce qui est faux - toute aide serait grandement appréciée -. Merci 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()**

Tous mes fichiers de configuration sont ci-dessous:

Cairngorm - BusinessDelegate.as

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

Cairngorm - Services.mxml

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

Printemps / BlazeDS - application config.xml

flex:remote-service ref="remotecomponentService" 

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

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

Le web.xml contient également des références de printemps - voir ci-dessous

<?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>
Était-ce utile?

La solution

Peut-on voir votre web.xml aussi s'il vous plaît? Je suis surpris de voir le mot « printemps » dans l'URL du point de terminaison. Mes critères d'évaluation ont toujours l'air

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

Je pense que par exemple .: vos services config.xml devrait ressembler davantage à ce sujet.

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

Je dirais aussi pas hardcoding l'URL point final tant. Il suffit d'aller avec

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

Mise à jour:

OK, donc votre web.xml semble OK, comme le fait d'avoir la spring dans votre URL. Qu'est-ce que je ne vois dans ce fichier de configuration du ressort (application-config.xml) est le mappage d'URL de printemps. Par exemple, dans mes fichiers de configuration de printemps, en plus des définitions de haricots, il y a une cartographie. Par exemple:.

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

(J'ai une application qui est basée à ressorts, et un autre qui utilise BlazeDS, mais pas les deux ... donc je pourrais manquer quelque chose. Cela dit, ce que je demande devrait toujours être valide. Dans la théorie. Mais le prendre avec un grain de sel.)

Peut-être une certaine débogage super-base est en ordre. Pouvez-vous vérifier si les appels à votre serveur reviennent HTTP 404 ou non des thèses sur les paramètres de problème? A deux manières de le faire:

  • Vérifiez les journaux d'accès pour GET /dashboard-server/spring/messagebroker/amf. Quel est le code d'état HTTP pour ces demandes? (gratuit, facile, pas de nouveaux outils.)
  • Si vous utilisez FireFox en tant que navigateur, ajoutez le Tamper les données plug-in. vous ne devez pas altérer les données, mais il vous montre ce qu'on appelle, ce qui est retourné, et tous les en-têtes HTTP.
  • Utilisez un complet sur Flash / Flex protocole orienté outil renifleur, comme Charles Web Debugging Proxy .

Il sera très utile de cerner le problème de savoir si lorsque ces demandes ne parviennent pas sur la pile de communication.

Autres conseils

Je joins web.xml ci-dessous. En ce qui concerne le mot « printemps » - J'utilise la norme BlazrDS / intégration Spring fichier WAR qui nécessite d'être là « printemps ». Le bean id = "remotecomponentService" est acutally un grain de printemps.

Voulez-vous dire même avec le BlazeDS / printemps WAR je peux utiliser votre solution ci-dessus?

Le web.xml contient également des références de printemps - voir ci-dessous

<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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top