문제

이것은 십자가에서 게시됩니다 Fusesource 포럼 그리고 Servicemmix 포럼.

나는 퓨즈로 dosgi를 작동시킬 수 없습니다. Zookeeper Discovery와 함께 CXF의 DOSGI 1.1-SNAPSHOT를 퓨즈 4.1.0.2에 얻으려고합니다. 나는 또한 Zookeepr 3.2.1을 사용하고 있습니다.

Felix 2.0.0에서 모든 것이 완벽하게 작동합니다. 나는 단지에 대한 지침을 따릅니다 DOSGI 발견 페이지를 설치 한 다음 설치하십시오 디스커버리 데모 묶음. Dosgi의 경우, 나는 단지 사용합니다 cxf-dosgi-ri-singlebundle distribution-1.1-snapshot.jar DSW와 cxf-dosgi-ri-discovery-singlebundle-distribution-1.1-snapshot.jar Zookeepr 발견을 위해. 그런 다음 하나의 컴퓨터에서 샘플 서비스 임시로 샘플 번들을 시작하면 Zookeeper에서 노드 생성이 나타납니다. 그런 다음 다른 컴퓨터에서 샘플 클라이언트를 시작하고 서비스 시스템의 출력이 보입니다. 잘 작동합니다. 일부 XSD Coudl을 찾을 수 없기 때문에 XML 오류가 무시되는 것에 대한 경고가 있지만 아무런 영향을 미치지 않는 것 같습니다. 아, 나는 또한 OSGI Compendium 번들을 먼저 설치해야합니다.

퓨즈로 이사 할 때 그런 행운이 없습니다. OSGI Compendium 번들에는 퓨즈가 제공되므로 설치할 필요가 없습니다. Dosgi-Ri Singlebundle과 Dosgi-Ri Discovery 단일 번들을 설치할 수 있어야하지만 작동하지 않습니다. Dosgi-Ri Singlebundle에는 ServiceMix가있는 모든 종류의 겹치는 번들이 있습니다. 포트 8081에 대한 오류가 발생합니까? 또는 osgi.http.service 매개 변수가 무엇이든 이미 사용 중입니다. 분명히 Dosgi-Ri Singlebundle에는 PAX WebService가 제공되는데, 이는 ServiceMix와 함께 제공되는 ServiceMix HTTP 서비스 번들과 동일한 속성을 읽습니다. 내가 전환 할 때 CXF-DOSGI-RI-MULTIBUNDLE DEPTIOLBITION-1.1-SNAPSHOT.ZIP 그리고 내가 원하는 부품을 가져 가도록 압축을 풀어주십시오. 나는 Dosgi-Ri Multibundle에서 DSW 번들을 꺼내서 설치합니다. JDOM 의존성 때문에 운이 없습니다. 그런 다음 Ri Multibundle에 나오는 JDOM을 설치합니다. 그런 다음 DSW로 돌아가서 설치되어 어딘가에 가고 있다고 생각합니다. 되돌아 가서 Ri-Discovery Singlebundle을 설치할 시간입니다. 시작할 때 PAX 로깅 서비스 ClasscastException이 Osgi Logservice 등으로 캐스트 할 수 없다고 말합니다. 그러나 그것은 단지 로깅 오류 일 뿐이며 맨 아래에서는 전송 클래스를 찾을 수 없다고 말합니다. http://schemas.xmlsoap.org/soap/http. 좋아, 로깅이 망가졌고 운송 클래스가 누락되었습니다. 글쎄, 이것은 Felix에서 작동했기 때문에 RI 멀티 펀들에서 충분히 설치하지 않는 것에서 비롯됩니다. 그래서 거기에 필요한 것은 무엇입니까? 검사시 CXF-MINIMAL-BUNDLE은 누락 된 클래스가 발생하여 마지막 오류를 일으 킵니다. 그래서 나는 그것을 설치합니다. Discovery Bundle을 시작하십시오. 그러나 나는 일종의 Corbabroker 예외로 끝납니다. wtf. 이 모든 것에 Corba를 사용하는 사람은 누구입니까? 그런 다음 다시 돌아가서 그 모든 것을 취소하고 RI와 Ri Discovery의 싱글 번들 배포판을 고수하려고하지만 ServiceMix HTTP 서비스를 끄십시오. ServiceMix가 충돌하고 CXF JBI 구성 요소가 불만족스러운 종속성으로 인해 다시 시작할 수 없습니다. 이상한. 어쨌든 사용하지 않기 때문에 무시하고 샘플을 시작하려고합니다. 샘플을 시작할 수 없습니다. 포트가 이미 사용 중이기 때문에 부두가 시작할 수 없기 때문입니다. Servicemix HTTP 서비스를 이미 종료했기 때문에 의미가 없습니다. 그런 다음 부두를 다시 시작합니다. 공장? 아마도. 내 서비스가 등록되어 Firefox를 사용하여 WSDL을 찾아 볼 수 있지만 Zookeeper에 등록 할 수는 없습니다. Ri-Discovery 번들을 종료하고 다시 시작하십시오. 그러나 NullPointerException을 얻습니다. 적절하게 RI 발견은 앞서 언급 한 오류 중 하나로 인해 실제로 시작되지 않았습니다. 그런 다음 Ri Discovery Singlebundle을 분해하고 내부를 꺼내기 시작했습니다. 우리가없이 우리가 할 수있는 몇 가지 libs가 있지만, 그것은 분명히 필요한 것이 아니기 때문에 그것은 효과가 없었습니다.

이야기의 끝. 작동하게 할 수 없습니다. 다른 사람이 작동 할 수 있습니까? SMX4에서 Discovery 샘플을 실행하고 싶습니다. 나는 그것이 단지 번들 충돌 문제라고 확신합니다. 이것이 Osgi가 고치는 것이 아닌가 ??? 이것은 단지 당신이 의존하는 항아리를 말하고 내 클래스 경로를 설정하는 것보다 나쁩니다. 적어도 나는 결국 일을 실행할 것입니다.

다음 단계는 Ri-Multibundle, DSW 및 JDOM, Ri-Discovery Singlebundle과 다시 시도하는 것입니다. 그런 다음 SOAP 운송 문제를 해결하기 위해 CXF 퓨즈 번들 또는 CXF-RT 번들 중 일부를 사용해 보겠습니다.

노트 편집 : 나는 단지 Dosgi 번들을 활성 상태로 보여주는 것 이상이 필요합니다. 그들은 당신이 그들을 통해 서비스를 노출 시키려고 할 때까지 실제로 많은 일을하지 않습니다. Zookeeper 인스턴스 및 기타 시스템이있는 서비스를 등록하는 여러 기계가 실행 Dosgi Discovery 샘플과 마찬가지로 서비스를 제공하는 서비스를보아야합니다.

CXF가 원래 CXF 번들의 일부를 제거하고 부두 서비스를 다시 시작하여 언급 한 최소 CXF 번들을 사용하여 분산 서비스 샘플을 SOAP 웹 서비스로 노출시키기 위해 CXF를 얻을 수있었습니다. CXF Minimal Buundle을 설치 한 다음 서비스를 시작한 다음 즉시 CXF 최소 번들을 제거한 다음 부두를 다시 시작함으로써 ... 순서라고 생각합니다. 이들 중 어느 것도 깨끗한 스타트 업에서 작동하지 않으며 Dosgi 작업을 수행하기위한 절차로 서비스를 다시 시작하는 것은 나쁘다. 나는 설치가 왜 설치되지 않는지조차 모르겠다.

도움이 되었습니까?

해결책

첫 번째 요점, CXF Dosgi Mega-Bundle을 살펴보면 기본적으로 Equinox와 Felix가 제공하는 최소 환경 인 Bare Osgi 런타임에서 빠른 해킹을위한 것이라고 생각합니다. 퓨즈 나 Servicemix와 같은 더 풍부한 환경을위한 것이 아닙니다. 번들과 플랫폼에서 보았던 것처럼 보이는 것처럼 보이는 것처럼 보이기 때문입니다.

ServiceMix 4.0을 깨끗하게 시작할 수 있었고 (이것은 창에 있습니다) 뜨거운 배포를했습니다.

  • com.springsource.org.jdom-1.0.0.jar
  • CXF-BUNDLE-MINIMAL-2.2.1.jar
  • CXF-DOSGI-RI-DISCOVERY-LOCAL-1.0.jar
  • cxf.dosgi-ri-dws.cxf-1.0.jar

Servicemix 콘솔을 사용하여 I I를 모든 번들을 나열했으며 위의 모든 것이 Active 상태 (예상대로). 서비스를 나열했고 2 CXF DOSGI 번들은 서비스를 수출하고 있었기 때문에 올바르게 작동하는 것으로 보입니다. 로그에는 오류 가보고되지 않았습니다.

Osgi에 얼마나 친숙합니까? Servicemix는 상당히 크게 보이고 Osgi, Servicemix 및 CXF/Dosgi를 함께 배우는 것은 쉽지 않을 것입니다 (내 의견으로는).

제공된 콘솔은 OSGI 물건에 적합하지 않으며 Apache Felix 콘솔 번들을 웹 인터페이스.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top