سؤال

يبدو أنني أحصل على الخطأ التالي عندما أحاول الوصول إلى فئة Java البعيدة (في الربيع / الحزجات) من تطبيق Flex / Cairngorm. أنا مجنون في الوقت الحالي في محاولة لمعرفة ما هو الخطأ - أي مساعدة سيكون موضع تقدير كبير - شكرا مايك.

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

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

Cairngorm - Services.mxml.

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

الربيع / الاحتيافه - تطبيق-config.xml

flex:remote-service ref="remotecomponentService" 

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

الربيع / الحاافل - الخدمات-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>

تحديث:

حسنا، لذلك يبدو الويب الخاص بك على ما يرام، كما يفعل spring في عنوان URL الخاص بك. ما لا أرى في ملف تكوين الربيع الخاص بك (application-config.xml) هو تعيين روبنج عنوان URL. على سبيل المثال، في ملفات التكوين الربيعي، بالإضافة إلى تعريفات الفول، هناك رسم خرائط. على سبيل المثال:

<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.
  • استخدام كامل على أداة الفلاش / المرن المنحى أداة الاستنساخ، مثل تشارلز ويب تصحيح الأخطاء.

سيكون من المفيد للغاية تضييق المشكلة لمعرفة ما إذا كانت هذه الطلبات تفشل في كومة الاتصالات.

نصائح أخرى

لقد أرفقت Web.xml أدناه. من حيث كلمة "الربيع" - أنا أستخدم ملف حرب Blazrds / Spring Integration القياسي الذي يتطلب "الربيع" لتكون هناك. معرف الفول = "RemoteComponentservice" هو حبة حبوب الربيع.

هل تقول حتى مع حرب النزاع / الربيع، يمكنني استخدام الحل الخاص بك أعلاه؟

يحتوي 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