문제

Flex/Cairngorm 응용 프로그램에서 원격 Java 클래스 (Spring/Blazeds)에 액세스하려고 할 때 다음과 같은 오류가 발생하는 것 같습니다. 나는 지금 무엇이 잘못되었는지 보려고 노력하는 순간에 미쳐 가고있다 - 어떤 도움이든 큰 감사를 표할 것입니다 - 감사합니다 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()**

모든 구성 파일은 다음과 같습니다.

CAIRNGORM- 비즈니스 델리 게이트

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

Cairngorm -Services.mxml

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

Spring/Blazeds -Application-config.xml

flex:remote-service ref="remotecomponentService" 

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

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

Web.xml에는 스프링 참조도 포함되어 있습니다. 아래를 참조하십시오

<?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>
도움이 되었습니까?

해결책

Web.xml도 볼 수 있습니까? 나는 그 단어를보고 놀랐다 "봄" 엔드 포인트 URL에서. 내 엔드 포인트는 항상 보였습니다

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

예 : 서비스 -config.xml이 더처럼 보일 것이라고 생각합니다.

    <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을 하드 코딩하지 않는 것이 좋습니다. 그냥 가십시오

    <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)는 스프링 URL 매핑입니다. 예를 들어, 스프링 구성 파일에는 Bean 정의 외에도 매핑이 있습니다. 예 :

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

(스프링 기반의 앱이 하나 있고 다른 앱이 타오르는 앱을 사용하지만 둘 다를 사용하지는 않습니다. 소금 한 알.)

어쩌면 약간의 기본 디버깅이 순서대로있을 수 있습니다. 서버에 대한 통화가 돌아 오는지 확인할 수 있습니까? HTTP 404 아니면 문제 종료점에 있지 않습니까? 이것을하는 몇 가지 방법 :

  • 액세스 로그를 확인하십시오 GET /dashboard-server/spring/messagebroker/amf. 이 요청에 대한 HTTP 상태 코드는 무엇입니까? (무료, 쉬운, 새로운 도구 없음)
  • Firefox를 브라우저로 사용하는 경우 변조 데이터 플러그인. 데이터를 조작 할 필요는 없지만 호출되는 내용, 반환 내용 및 모든 HTTP 헤더가 표시됩니다.
  • Flash/Flex 지향 프로토콜 스나이퍼 도구를 사용하십시오. 찰스 웹 디버깅 프록시.

통신 스택에서 이러한 요청이 어디에 실패했는지 알기 위해 문제를 좁히는 것이 매우 도움이 될 것입니다.

다른 팁

아래에 web.xml을 첨부했습니다. "스프링"이라는 단어의 관점에서 - 나는 "스프링"이 필요한 표준 Blazrds/Spring Integration War 파일을 사용하고 있습니다. Bean ID = "RemoteComponentService"는 급성 스프링 콩입니다.

Blazeds/Spring War에서도 위의 솔루션을 사용할 수 있다고 말하고 있습니까?

Web.xml에는 스프링 참조도 포함되어 있습니다. 아래를 참조하십시오

<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>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top