0

次のように、この JAR の同じパスの下にある、データソース XML 構成「db2.xml」を使用してデータベース接続プールを作成するために使用される共通の jar を取得しました。

Project/
       -- lib
              -- db2.xml
              -- common.jar

db2.xml を読み取るためのコードに従います。

    private BeanFactory() {
            try {
                beanFactory = new DefaultListableBeanFactory();
                xmlReader = new XmlBeanDefinitionReader((BeanDefinitionRegistry)
                   beanFactory);
                resource = new ClassPathResource("db2.xml");
                xmlReader.loadBeanDefinitions(resource);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }    

常にエラーが発生します:

org.springframework.beans.factory.BeanDefinitionStoreException: IOException 
parsing XML document from class path resource [db2.xml]; nested exception is 
java.io.FileNotFoundException: class path resource [db2.xml] cannot be opened 
because it does not exist

したがって、「db2.xml」が見つからないことが原因であるに違いありません。構成ファイルが設定されているresource = new ClassPathResource("/db2.xml")か、resource = new ClassPathResource("lib/db2.xml")またはresource = new ClassPathResource("../lib/db2.xml"); 私はまったくうまくいきません。これに相対パスを設定するにはどうすればよいですか。

resource = new ClassPathResource(CONFIGURATION_PATH);

これは Java プロジェクトです。db2.xml を共通の jar に入れると機能します。

4

2 に答える 2

0

これを試して

    String userDir = System.getProperty("user.dir");
    File file =  new File(userDir+"/lib/db2.xml");
于 2012-11-23T05:16:00.970 に答える
0

db2.xml はクラスパスにある必要があります。Java アプリケーションの実行方法を教えてください。Eclipse などの ide を使用している場合は、lib ディレクトリをクラスパス (ビルド パス) に追加します。プレーンな Java コマンドを使用している場合は、次のコマンドを使用して lib ディレクトリをクラスパスに配置します。

java -cp {path to lib directory},{what ever jars you have comma seperated} mainClass

また、デフォルトでは、Java コマンドはクラスパスに現在のディレクトリを持ちません。

于 2012-11-23T05:36:40.597 に答える