2010-12-14 4 views
1

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); 
    } 
} 

답변

0

올바른 방법은 DriverManagerDataSource 기본값을 사용하여 JNDI 데이터 소스를 만드는 것입니다. 컨테이너에서 실행하면 Spring은 명명 된 데이터 소스를 사용합니다. 조회가 실패하면 비 JNDI 데이터 소스를 사용합니다.

+0

나는 당신이 여기서 말하는 것을 이해하고 있는지 잘 모르겠습니다. DriverManagerDataSource가 응용 프로그램이나 어딘가에있는 일부 속성 파일에 연결 정보를 저장해야한다고 생각했습니다. 내가 직면하고있는 제약 중 하나는이 애플리케이션을 위해 그렇게 할 수 없다는 것입니다. – user294241

+0

예, JNDI 데이터 소스를 확인하십시오. 그것은 당신이 기본값을 가질 수 있습니다. – duffymo

관련 문제