2014-01-31 3 views
1

인터페이스 (ITestRunable)를 내보내려고합니다. context.xml 및 osgi.xml 파일에서 모든 것을 올바르게 연결했으나 제대로 작동하지 않습니다. 오류 : 'me.overlaymanagement'에 대한OSGI의 인터페이스를 내보낼 수 없습니다.

응용 프로그램 컨텍스트 초기화 (방법 objectClass = me.overlaymanagement.testing.ITestRunable)

상관 어떤 생각을 가지고 기다리는 시간이 초과되었습니다?

코드 : 메인 시스템으로 수입 ITestRunable

의 context.xml

<bean id="testingRunable" class="me.overlaymanagement.testing.Testing" 
init-method="startUp" destroy-method="shutDown"> 
    </bean> 

osgi.xml

<osgi:service id="testingRunable" ref="testingRunable"> 
    <osgi:interfaces> 
     <value>me.overlaymanagement.testing.ITestRunable</value> 
    </osgi:interfaces> 
</osgi:service> 

봄 파일 봄 파일

의 context.xml

<bean id="overlaymanagementsystem" 
    class="me.overlaymanagementsystem.OverlayManagementSystem" 
    init-method="startUp" destroy-method="shutDown"> 
    <property name="testingRunable" ref="testingRunable"/> 
</bean> 

osgi.xml

public class OverlayManagementSystem{ 
    ... 
    protected ITestRunable testingRunable; 
    .... 
    public ITestRunable getTestRunable() { 
    return testingRunable; 
    } 

    public void setTestRunable(ITestRunable testingRunable) { 
    this.testingRunable = testingRunable; 
    } 
} 

사람이 문제를 볼 수 있습니다

메인 시스템 내에서 ITestRunable에 대한

<osgi:reference id="testingRunable" cardinality="1..1" 
    interface="me.overlaymanagement.testing.ITestRunable">  
</osgi:reference> 

Gettors 및 Settors?

답변

0

좋아, 그래서 나는 포블을 발견 할 수 있었다. 실제로 두 가지가 있습니다 :

  1. ITestRunable 코드가 위치한 곳의 빈 ID와 서비스 ID를 설정하지 않은 것 같습니다. 일단 서비스 ID 이름을 다른 것으로 변경하면 잘못된 gettors 및 settors에 대한 새로운 오류가 발생했습니다. 이는 다음 단계입니다.

  2. 일부 조사 결과 가져온 서비스의 gettor 및 setter가 해당 서비스의 beans 속성 이름과 같아야합니다. 내 콩의에서주의 사항 :

    < 속성 이름 = "testingRunable"... />

및 가져 오기/설정은 다음과 같이 정의된다 : "getTestRunable/setTestRunable". 이것들을 getTestingRunable과 setTestingRunable로 변경하면 저에게 문제가 해결되었습니다.

다른 사람들에게 도움이되기를 바랍니다.

관련 문제