2017-04-05 2 views
0

구성 및 Apache Commons Configuration의 PropertiesConfiguration 유형에 몇 가지 개념적 어려움이 있습니다.구성 대 등록 정보 구성

PropertiesConfiguration config = createConfig(); 
BlazeGraphEmbedded graph = BlazeGraphEmbedded.open(repo, config); 

createConfig() 메소드 :

public static PropertiesConfiguration createConfig() 
    { 
     PropertiesConfiguration config = null; 
     Parameters params = new Parameters(); 
     BasicConfigurationBuilder<PropertiesConfiguration> builder = 
     new BasicConfigurationBuilder<PropertiesConfiguration>(PropertiesConfiguration.class) 
         .configure(params.basic() 
         .setListDelimiterHandler(new DefaultListDelimiterHandler(',')) 
         .setThrowExceptionOnMissing(true)); 
     try { 
      config = builder.getConfiguration(); 
      config.addProperty("VALUE_FACTORY", BVF_extendo4000.INSTANCE); 
     } catch (ConfigurationException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    System.out.println("Returning config."); 
    return config; 
    } 

내가 BlazeGraphEmbedded 클래스의 open 메소드에 전달하는 구성 개체를 만들려고하고 있습니다. 그러나 제 createConfig 메서드는 PropertiesConfiguration 객체를 반환하는데,이 객체는 BlazeGraphEmbedded.open (Repository, Configuration) 메서드가 허용하지 않습니다.

Exception in thread "main" java.lang.ClassCastException: 
org.apache.commons.configuration2.PropertiesConfiguration cannot be cast to 
org.apache.commons.configuration.Configuration 

내가 구성 PropertiesConfiguration에 의해 구현되는 인터페이스는 것을 이해하지만, 내가 사용하는 방법의 세부 사항에 퍼지 해요 : 나는 구성에 내 PropertiesConfiguration 캐스팅 할 수 없습니다, 그것은 런타임 오류가 발생 내 프로그램을 실행하기위한 두 가지 유형.

답변

0

문제점은 내 import 문에 있습니다. 나는 가지고 있었다 :

import org.apache.commons.configuration.Configuration; 
import org.apache.commons.configuration2.PropertiesConfiguration; 

따라서 두 개의 다른 소스에서 가져 오기 때문에 형식이 호환되지 않았다.

관련 문제