를 사용하여 우리는 우리의 배포 된 Java 웹 응용 프로그램이 연결해야하는 중앙 LDAP 서버가. JUnit 테스트는 LDAP 저장소의 특정 데이터에 따라 달라 지므로 샘플 데이터 세트로 준비된 내장 ApacheDS LDAP 서버에 연결해야합니다. 웹 애플리케이션을 배포 할 때 ApacheDS 서버가 시작되지 않도록하려면 어떻게해야합니까?
세부 우리는 내장 된 LDAP 서버를 시작하는 봄 보안을 사용하고 LDAP-의 context.xml에 다음 줄을 가지고있다
: 현재
<security:ldap-server root="dc=test,dc=com" port="33389" ldif="classpath:EmbeddedServerRoot.ldif" />
을, 우리의 web.xml 참조 이 테스트 컨텍스트 파일과 최상위 수준의 application-context.xml :
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:ldap-context.xml
classpath:application-context.xml
</param-value>
</context-param>
ldap-context.xml 우리가 JUnit 테스트를 실행할 때, 그리고 우리가 eclipse (WTP를 통해)에서 직접 webapp을 실행할 때 포함되지만, 우리가 war를 패키징하고 그것을 서버에 배포 할 때 제외된다.
빌드 도구로 maven을 사용하고 있습니다. 우리는 매우 쉽게 컨텍스트 구성에서 모두 스프링 컨텍스트 파일 포함 확인하여 우리의 JUnit 테스트에 대한 이러한 상황 돌볼 수 : 다음
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:ldap-context.xml", "classpath:application-context.xml" })
public class TestStuff {
}
을, 우리의 web.xml 만 제외하고 애플리케이션의 context.xml을 포함 할 것 한 가지 - WTP에서 실행 중일 때 작동하지 않습니다.이 경우에도 임베디드 서버가 필요합니다. 어떤 제안?
두 개의 web.xml 파일을 사용 하시겠습니까? ldap-context.xml이 WTP가 작동하도록 기본적으로 포함될 필요가 있다고 들린다. 그러면 maven이이를 "프로덕션"web.xml 파일로 대체해야합니다 ...? 당신의 접근 방식에 대한 더 자세한 정보가 도움이 될 것입니다. – Julie