나는 2 개의 다른 메이븐 모듈로 구성된 웹 애플리케이션을 개발 중이다.in java webapp, hsqldb url은 상대 경로를 허용하지 않습니다. 그것은 maven 구성 때문입니까?
i는 데이터베이스 layer.it 테스트 및 test/resources' default package
의 속성 파일에 대한 test/resources/META-INF
에 스프링 애플리케이션 컨텍스트 test-model-config.xml
을 가지고 representes 모델 모듈을 가지고있다. 라이브 컨텍스트이고 웹 응용 프로그램에서 속성을 선택한다고 가정되는 resources/META-INF
에 model-config.xml
이 있습니다. 지금은 잘 구축까지 , 여기에 문제
- <!-- 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>
을 잘 작동하지 conf의 경우 같은 종류가 다른 모듈 서비스가
jdbc.driverClassName=org.hsqldb.jdbcDriver
jdbc.username=sa
jdbc.password=
jdbc.url=jdbc:hsqldb:file:target/mydb;create=true
시험/자원 속성의 스 니펫입니다 거기에 테스트 구성 및 라이브 config files.this 하나가 너무 별도로 아무 문제가 없습니다. 빌드 벌금, 잘 작동합니다.
이제 webapp에는 모델 및 서비스 모듈에 필요한 모든 속성에 대해 /web pages/WEB-INF
및 general.properties
에 webapp-config.xml
이 있습니다. 그래서 general.properties
및 webapp-log4j.properties
우리가
jdbc.driverClassName=org.hsqldb.jdbcDriver
jdbc.username=sa
jdbc.password=
jdbc.url=jdbc:hsqldb:file:classpath:target/mynewdb;create=true
// ....
그것은 또한 잘 구축하고 문제와 잘 실행이있는 general.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>
의 조각에 있습니다.
1 : 로그 메시지 :
은 java.sql.SQLException : 입력/출력 오류 래스 파일 : 타겟/mynewdb.properties의 java.io.FileNotFoundException을 : 클래스 경로 대상/mynewdb.properties한다. 이 내가 error.it의이
/media/Repo/myproject/mydb;create=true
로 절대 URL로 잘 실행의이 종류를 마주하고있어 처음이기 때문에 새로운 (해당 파일 또는 디렉토리) 전체 디버그 출력이 here
난 정말 놀랐어요 없지만 아이디어는 webapp 타겟에있는 것입니다. 대상 폴더가 삭제되면 삭제됩니다.
글쎄 나는 실마리가 없으며 2 일이 지났다. 어떻게이 문제를 해결할 수 있습니까? 여기 내가 뭔가 보이지 않거나하는거야? 그것은 maven 구성 때문입니까? 내 pom을 볼 수 있습니다 here 이것을 읽어 주셔서 감사합니다.
내가 제거 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; 작동하지만, 나는 연결 문자열 규칙을 따른다 : jdbc : hsqldb : file : [] '(레거시 양식과 동일한 의미) –