Adobe CQ5 설치에서 servlet-api 버전 3을 사용하려고하는데 많은 성공을 거두지 못했습니다.servlet-api 3 번들을 사용하여 adobe CQ5에
javax.servlet 패키지 (버전 2.5)를 내보내는 번들이 이미 있으므로 3.1.0 버전의 번들을 배포했습니다. 이 번들은 괜찮습니다.
문제는 api v3를 사용하는 번들을 시작하는 중입니다. 나는 완전히 이해 할 수없는 OSGi 프레임 예외 점점 오전 :
POST/시스템/콘솔/번들/250 HTTP/1.1] cqse - HTTPService를 % bundles.pluginTitle : (org.osgi.framework.BundleException를 시작할 수 없습니다 :
제약 위반 [250.9] 패키지 비난 기존 수입 266.0.javax.servlet
사이 모듈 250.9 해결 패키지 '에서 javax.servlet'대 (& (= 패키지에서 javax.servlet) (버전> = 3.0.0) (! (버전> = 4.0.0)))]
및 constr aint 22.1.javax.servlet
BLAMED ON [[250.9] package; (package = com.day.cq.wcm.foundation.forms), [210.0] 패키지; (& (패키지 = org.apache.sling.api.resource) (버전> = 2.0.0)), [93.0] 패키지; (& (= 패키지에서 javax.servlet) (버전> = 2.4.0))) = 3.10 (I이 한 설치에서 javax.servlet V
- 번들 수출 266)
- 번들 22 개 javax의 수출 .servlet v = 2.5 (CQ5에서 제공)
- 번들 250 (광산)은 266에서 javax.servlet, version = [3.0,4]을 가져옵니다.
- 번들210 가져 오기 javax. servelt v = 22 from 22 (하지만 매니페스트에서 가져온 항목에는 버전이 없습니다. 아마도 이것이 문제일까요?)
- 번들 93에는 javax.servlet이 있습니다. version = "2.4"임포트 - 패키지. 하지만 (22)에서 javax.servlet, version = 2.5.0으로 해결되었습니다.
문제는 번들 250의 종속성 주위에있는 것 같지만, 어떤 것이 문제인지 확실하지 않습니다. AFAIK 패키지의 두 버전은 OSGi 컨테이너에 공존 할 수 있습니다. 번들210 및 93이 문제없이 실행 중입니다.
이 기사에서는 사용 제약 조건 위반이 무엇인지, 추적하는 것이 어려운 이유에 대해 자세히 설명합니다. http://njbartlett.name/2011/02/09/uses-constraints.html 문제를 추적하는 데 도움이되기를 바랍니다. –