Level : INTERMEDIATE
[기대결과]
ubuntu 환경에서 ./eclient or ktaskbrowser 가 windows환경의 server app의 오브젝트를 호출한다.
[선행작업]
Windows:
svn co http://svn.mech.kuleuven.be/repos/orocos/branches/rtt/rtt-1.10
vc9 실행, release
vc90 추가 포함 디렉토리
"C:\orocos\orocos-rtt-1.10.0\src";"C:\orocos\orocos-rtt-1.10.0\build\src";"C:\orocos\orocos-rtt-1.10.0\build\src\os";"C:\orocos\orocos-rtt-1.10.0\build\src\os\win32";C:\orocos\ACE_wrappers;C:\orocos\ACE_wrappers\TAO;C:\orocos\ACE_wrappers\TAO\orbsvcs;"C:\orocos\orocos-rtt-1.10.0\build\src\corba";C:\orocos\boost_1_36_0
추가 종속성
..\Release\orocos-rtt-win32.lib
C:\orocos\ACE_wrappers\lib\ACE.lib
C:\orocos\ACE_wrappers\lib\TAO.lib
C:\orocos\ACE_wrappers\lib\TAO_PortableServer.lib
C:\orocos\ACE_wrappers\lib\TAO_CosNaming.lib
C:\orocos\ACE_wrappers\lib\TAO_Messaging.lib
C:\orocos\ACE_wrappers\lib\TAO_AnyTypeCode.lib
C:\orocos\ACE_wrappers\lib\TAO_Valuetype.lib
ApplicationServer.hpp에서
struct ApplicationServer
class RTT_CORBA_API ApplicationServer로 변경
Services.cpp에서
// ACE_THROW_SPEC (CORBA::UNKNOWN ()); 주석처리
server application 환경 설정
추가 포함 드렉토리
../../;../../rtt/corba;../../build/src;../../build/src/corba;../../build/src/os;../../build/src/os/win32;C:\orocos\boost_1_37_0;C:\orocos\ACE_wrappers;C:\orocos\ACE_wrappers\TAO
추가 디렉토리 라이브러리
"C:\orocos\orocos-rtt-1.10.0\build\src\$(ConfigurationName)";"C:\orocos\orocos-rtt-1.10.0\build\src\corba\$(ConfigurationName)";C:\orocos\boost_1_37_0\lib;C:\orocos\ACE_wrappers\lib
추가 종속성
C:\orocos\orocos-rtt-1.10.0\build\src\corba\Release\orocos-rtt-corba-win32.lib orocos-rtt-win32.lib C:\orocos\ACE_wrappers\lib\ACE.lib C:\orocos\ACE_wrappers\lib\TAO.lib C:\orocos\ACE_wrappers\lib\TAO_PortableServer.lib C:\orocos\ACE_wrappers\lib\TAO_CosNaming.lib C:\orocos\ACE_wrappers\lib\TAO_Messaging.lib C:\orocos\ACE_wrappers\lib\TAO_AnyTypeCode.lib C:\orocos\ACE_wrappers\lib\TAO_Valuetype.lib
[실행]
ubuntu:
vi ~/.bashrc
export NameServiceIOR=corbaloc:::9000/NameService
or
./eclient -ORBInitRef NameService=corbaloc:iiop:192.168.0.54:9000/NameService
window:
Naming_Service.exe -ORBEndpoint iiop://192.168.0.54:9000
corba_test_server.exe -ORBInitRef NameService=corbaloc:iiop:192.168.0.54:9000/NameService
[추가사항]
windows 방화벽 설정시
./eclient 네임서버의 Component는 찾지만 (네임서버통신성공)
object 명령 실행 안됨(방화벽때문만은 아닌것 같은)
ktaskbrowser는 방화벽 해제시와 같은 실행을 보임
corba_test_server.exe에서
131.672 [ ERROR ][StatementProcessor] CORBA exception raised when creating ExpressionProxy!
131.672 [ ERROR ][StatementProcessor] system exception, ID 'IDL:omg.org/CORBA/TRANSIENT:1.0'
OMG minor code (2), described as '*unknown description*', completed = NO
이런 메시지가 표시됨
[후기]
Naming_Service의 설정을 정확이 알지 못해서 하루를 보냄
Naming_Service 폴더의 README