2010-12-22 1 views
2

나는 Guice를 시도하고있다. 나는 Guice Getting Started 설명서의 예제와 매우 유사한 간단한 예제를 만들었습니다.왜 Guice는 TestNG 제공에서 @ javax.inject.Inject를 인식하지 못합니까? 반면 Guice는 com.google.inject 패키지에서 인식합니까?

은 그러나 얼마 동안 일을하고 말했다하지 않았다 :

이 mypack.ServiceUser에 적절한 생성자 를 찾을 수 없습니다. 클래스는 에 @Inject 또는 @ 주석이없는 생성자가이고 0이 아닌 생성자 인이 비공개가 아니어야합니다. mypack.ServiceUser.class (ServiceUser.java:14) 에서 문제가 있었다 수입 mypack.ServiceUser

의 위치있다. Google Guice와 TestNG를 모두 프로젝트에 첨부했습니다. 그리고 org.testng.guice 패키지에서 수업을 들여 왔습니다. 그러나 주석 Injectjavax.inject 패키지에서 가져 왔습니다. 그 수입을 org.testng.guice.Inject으로 바꾼 후에 프로그램이 작동하기 시작했습니다.

그러나 그 후 나는 조금 더 수입품을 가지고 놀았습니다. org.testng 수입품을 모두 com.google.inject으로 변경했습니다. 이 프로그램은 여전히 ​​효과가있었습니다. 그 후 나는 @Inject 주석으로 돌아가서 javax.inject.Inject으로 가져 오기를 변경했습니다 (처음 깨진 버전 이었기 때문에). 그리고이 프로그램은 그 후에도 효과가있었습니다.

나는 Guits가 Google 패키지 (com.google.inject)와 정상적으로 작동하는 동안 TestNG 패키지의 Guice는 javax.inject.Inject과 작동하지 않습니다.

왜 그렇게 이상합니까?

p.s. Guice와 TestNG (guice-3.0-rc1과 testng-5.14.5)의 마지막 버전을 사용합니다.

답변

1

짧은 답변은 다음과 같습니다. @Guice는 여전히 진행 중이며 우리가 말한대로 메일 링리스트에서 설계되었으므로 여전히 실험적입니다.

또한 TestNG의 내부 용으로 예약 된 문서화되지 않은 패키지 (org.testng.guice)를 사용하고 있습니다.

난 그냥 오늘 새 버전을 밀어 당신이 새로운 버전은 더 이상 org.testng.guice을 가지고 http://testng.org/beta

주에서 다운로드 그래서 당신은 Guice 기호를 필요로 할 때마다, 당신이 그들을 가져올 수 있는지 확인 할 수 있습니다 com.google.inject.

질문이나 문제가 더 있으시면 testng-users 메일 링리스트에 게시하십시오.

감사합니다.

+0

설명과 새로운 버전을 제공해 주셔서 감사합니다. – Roman

+0

com.google.inject 및 java.inject.Inject 만 사용하는 동안 동일한 오류가 발생합니다. – ripper234