我正在開發一個由2個其他的maven模塊組成的webapp。,hsqldb url不會接受相對路徑。是由於maven配置?
我有代表數據庫層的模型模塊。它有彈出應用程序上下文test-model-config.xml
test/resources/META-INF
進行測試和屬性文件test/resources' default package
。和model-config.xml
在resources/META-INF
這是活的上下文,它應該從web應用程序中選擇屬性。 到現在建立精細,做工精細沒有問題
- <!-- test-model-config.xml and model-config.xml have the same thing-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
這裏只是一個測試/資源屬性的片段
jdbc.driverClassName=org.hsqldb.jdbcDriver
jdbc.username=sa
jdbc.password=
jdbc.url=jdbc:hsqldb:file:target/mydb;create=true
存在具有相同類型的conf其中的另一個模塊服務有一個測試配置和一個活的配置files.this一個太分開沒有問題.builds罰款,工作正常。
現在web應用程序有webapp-config.xml
在/web pages/WEB-INF
和general.properties
爲模型和服務模塊所需的所有屬性。所以general.properties
和webapp-log4j.properties
都在webapp.here的resources' default package
的webapp-config.xml
<import resource="classpath:META-INF/model-config.xml" />
<import resource="classpath:META-INF/service-config.xml" />
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:general.properties</value>
<value>classpath:webapp-log4j.properties</value>
</list>
</property>
</bean>
片段在general.properties我們
jdbc.driverClassName=org.hsqldb.jdbcDriver
jdbc.username=sa
jdbc.password=
jdbc.url=jdbc:hsqldb:file:classpath:target/mynewdb;create=true
// ....
還建立精細和運行罰款的問題。
:日誌說:
java.sql.SQLException中:文件輸入/輸出錯誤的類路徑:目標/ mynewdb.properties java.io.FileNotFoundException:類路徑:目標/ mynewdb.properties。新的(沒有這樣的文件或目錄)完整的調試輸出here
我真的很驚訝,因爲這是我第一次面對這種error.it的運行良好,具有絕對的URL爲/media/Repo/myproject/mydb;create=true
,但這個想法是讓它在webapp目標中以便在目標文件夾被刪除時被刪除。
嗯,我沒有線索,現在已經2天了。 id如何解決這個問題?在這裏,我不是在做什麼?是由於maven配置? 我的pom可以看到here 感謝您閱讀本文。
我刪除了classpath關鍵字。它在那裏,因爲我使用模型模塊工作得很好。即使我刪除了classpath既不'jdbc.url = jdbc:hsqldb:file:mynewdb; create = true'也不''jdbc.url = jdbc:hsqldb:file :/ mynewdb; create = true'也不是'jdbc.url = jdbc:hsqldb:file:/ target/mynewdb; create = true'也不是'jdbc.url = jdbc:hsqldb:file:target/mynewdb; create = true'工作,但我相信,它遵循連接字符串規則: jdbc:hsqldb:file: []'(與傳統表單相同的語義) –
2011-05-14 11:23:21