亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring Boot 2.0 JNDI 屬性值未從應用程序測試屬性文件加載

Spring Boot 2.0 JNDI 屬性值未從應用程序測試屬性文件加載

慕蓋茨4494581 2021-11-11 17:40:14
我正在嘗試運行 application-test.properties 文件中配置的測試用例和 jndi 屬性@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTest(classes = { App.class }, webEnvironment = WebEnvironment.RANDOM_PORT)@ContextConfiguration@TestPropertySource("classpath:/application-test.properties")public class CheckingServiceTest {屬性文件中的配置java.naming.factory.initial=org.jboss.naming.remote.client.InitialContextFactoryjava.naming.provider.url=remote://xyz:4447,remote://xyz:4447java.naming.security.principal=qaappmqjava.naming.security.credentials=xyz123jms.username=qaappmqjms.password=ixyz123jboss.naming.client.ejb.context=true在 XML 配置文件中<bean id="JNDITemplate" class="org.springframework.jndi.JndiTemplate">        <constructor-arg name="environment">            <props>                <prop key="java.naming.factory.initial">${java.naming.factory.initial}</prop>                <prop key="java.naming.provider.url">${java.naming.provider.url}</prop>                <prop key="java.naming.security.principal">${java.naming.security.principal}</prop>                <prop key="java.naming.security.credentials">${java.naming.security.credentials}</prop>                <prop key="jboss.naming.client.ejb.context">${jboss.naming.client.ejb.context}</prop>            </props>        </constructor-arg>    </bean>嘗試將靜態值直接放入 bean 初始化中,它工作正常,甚至應用程序在 application.properties 中提到的默認配置下也能正常工作。問題:屬性值未在 XML 配置文件中初始化
查看完整描述

3 回答

?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

添加@ActiveProfiles("test")到您的測試類


@RunWith(SpringJUnit4ClassRunner.class)

@SpringBootTest(classes = { App.class }, webEnvironment = WebEnvironment.RANDOM_PORT)

@ContextConfiguration

@TestPropertySource("classpath:/application-test.properties")

@ActiveProfiles("test")

public class CheckingServiceTest {


查看完整回答
反對 回復 2021-11-11
?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

嘗試將您的 TestPropertySource 注釋更改為:

@TestPropertySource(locations = "classpath:application-test.properties")


查看完整回答
反對 回復 2021-11-11
?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

從項目中刪除 XML 配置并嘗試創建每個 bean 注釋驅動。


使用@Value 為每個變量賦值或使用創建單獨的類


 @Configuration

 public class TestConfiguration {


@Bean(name = "publishJNDITemplate")

public JndiTemplate publishJNDITemplate() {

    final Properties environment = new Properties();

    environment.put(Context.INITIAL_CONTEXT_FACTORY, factoryIntial);

    environment.put(Context.PROVIDER_URL, providerUrl);

    environment.put(Context.SECURITY_PRINCIPAL, securityPrincipal);

    environment.put(Context.SECURITY_CREDENTIALS, securityCredentials);

    environment.put(narfeedTopics, destination);

    return new JndiTemplate(environment);

}

}


查看完整回答
反對 回復 2021-11-11
  • 3 回答
  • 0 關注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號