2013-03-28 2 views
0

Google API OAuth2 인증의 깨끗한 코드 샘플을 얻으려고합니다. 내 코드는 주로 설명에 기반합니다 https://code.google.com/p/google-api-java-client/wiki/OAuth2NoSuchMethodError : JsonFactory.fromInputStream

Google 애플리케이션 라이브러리를 Maven에서 관리하고 Google Apps Engine 종속성없이 프로젝트를 만들고 싶기 때문에이 튜토리얼에서 벗어난 것입니다.

글래스 피시 서버에서 프로젝트를 실행하려고 할 때마다 다음 오류가 발생합니다. 이는 아마도 종속성 충돌을 나타냅니다.

Ljava/lang/Class; Ljava/lang/Class;

내 pom.xml 파일의 관련 부분 :

<dependencies> 
    <dependency> 
     <groupId>com.google.api-client</groupId> 
     <artifactId>google-api-client</artifactId> 
     <version>1.14.1-beta</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.http-client</groupId> 
     <artifactId>google-http-client</artifactId> 
     <version>1.14.1-beta</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.api-jackson2</groupId> 
     <artifactId>google-api-jackson2</artifactId> 
     <version>1.14.1-beta</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.apis</groupId> 
     <artifactId>google-api-services-calendar</artifactId> 
     <version>v3-rev34-1.14.1-beta</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.oauth-client</groupId> 
     <artifactId>google-oauth-client</artifactId> 
     <version>1.14.1-beta</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-core</artifactId> 
     <version>2.1.3</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.oauth-client</groupId> 
     <artifactId>google-oauth-client-servlet</artifactId> 
     <version>1.14.1-beta</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.persistence</groupId> 
     <artifactId>persistence-api</artifactId> 
     <version>1.0.2</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.validation</groupId> 
     <artifactId>validation-api</artifactId> 
     <version>1.1.0.CR2</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.faces</groupId> 
     <artifactId>jsf-api</artifactId> 
     <version>2.1</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.enterprise</groupId> 
     <artifactId>cdi-api</artifactId> 
     <version>1.1-PRD</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.0.1</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.annotation</groupId> 
     <artifactId>jsr250-api</artifactId> 
     <version>1.0</version> 
    </dependency> 
    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-web-api</artifactId> 
     <version>6.0</version> 
    </dependency> 
</dependencies> 

는 사용 종속 관계가 나에게 잘 보일 내가 찾을 수없는 비슷한 문제 사례가 없기 때문에 나를,이 오류의 근본 원인을 찾을 수 있도록 도와주십시오.

+0

저에게 다른 라이브러리를 참조하는 라이브러리가 있고 그 방법을 기대하고있는 것으로 보입니다. 대부분의 경우 라이브러리 중 하나가 두 번째 라이브러리 앞에 올바른 버전이 아니기 때문입니다. –

+0

@Garis, 이것은 정확하게 문제가되는 것처럼 보이지만, maven pom 파일에 표시된 것처럼 모든 Google 관련 API는 가장 최신이고 해당 버전 (1.14.1-beta) 인 것 같습니다. – Cloud

+0

확실히 라이브러리가 다운로드 중입니까? –

답변

1

jackson2에 대한 올바른 의존성은 다음과 같습니다

<dependency>   
    <groupId>com.google.http-client</groupId> 
    <artifactId>google-http-client-jackson2</artifactId> 
    <version>1.14.1-beta</version> 
</dependency> 

나는이 프로젝트가 성공적으로 구축하는 것이 변경되면, 나는 잘 문제의 메소드를 호출 할 수 있었다.

간섭하는 클래스 경로에 다른 것이있을 수 있습니다. 모든 충돌을 표시하는 -verbose: class (자세한 설명은 here 참조)으로 프로그램을 실행하는 것이 좋습니다.

관련 문제