jndi를 통해 데이터 소스 정보를 검색하여 weblogic 서버 외부의 일부 DAO를 성공적으로 테스트했습니다. 나는 websphere와 비슷한 옵션을 찾고 있으며, 응용 프로그램 내의 어떤 위치 나 그와 비슷한 것으로 사용자 이름과 패스워드를 하드 코드하지 않는 솔루션을 필요로한다. 나는 JNDI 연결을 테스트 한컨테이너 외부의 JNDI Spring Websphere 테스트하기
<bean id="applicationServerEnviromentProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="properties"><props> <prop key="java.naming.factory.initial">com.ibm.websphere.naming.WsnInitialContextFactory</prop> <prop key="java.naming.provider.url">iiop://localhost:2809</prop> </props> </property> </bean> <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"><value>PeopleAppDS</value></property> <property name="jndiEnvironment"><ref local="applicationServerEnviromentProperties"/></property> </bean>
및 응용 프로그램이 웹 스피어에에로드 될 때 작동한다 : 지금 내 JNDI 설정이 내부 스프링처럼 보인다. 예를 들어 응용 프로그램이로드되기 전에 일식 내부의 daos를 테스트 할 수 있기를 원합니다. 어떤 도움이라도 대단히 감사 할 것입니다.
다음은 테스트 사례에 대한 세부 정보입니다.
------- BaseTestCase.java --------------------
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"file:data-access-config.xml"})
public class BaseTestCase {
}
----- PersonDaoTest.java- ---------------
import static org.junit.Assert.assertNotNull;
import java.util.List;<br>
import org.junit.Test;<br>
import org.springframework.beans.factory.annotation.Autowired;
import ....dao.PersonDao;<br>
import ....domain.Person;<br>
public class PersonDaoTest extends BaseTestCase {
@Autowired
private PersonDao personDao;
@Test
public void findByName() {
List<Person> people = personDao.listByName("j%", false, "userId");
assertNotNull(people);
}
}
나는 당신이 여기서 말하는 것을 이해하고 있는지 잘 모르겠습니다. DriverManagerDataSource가 응용 프로그램이나 어딘가에있는 일부 속성 파일에 연결 정보를 저장해야한다고 생각했습니다. 내가 직면하고있는 제약 중 하나는이 애플리케이션을 위해 그렇게 할 수 없다는 것입니다. – user294241
예, JNDI 데이터 소스를 확인하십시오. 그것은 당신이 기본값을 가질 수 있습니다. – duffymo