[英]Spring Boot 2.0 JNDI property values not loading from application-test property file
I am trying to run test cases and jndi properties configured in application-test.properties file 我正在尝试运行在application-test.properties文件中配置的测试用例和jndi属性
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = { App.class }, webEnvironment = WebEnvironment.RANDOM_PORT)
@ContextConfiguration
@TestPropertySource("classpath:/application-test.properties")
public class CheckingServiceTest {
A configuration in the property file 属性文件中的配置
java.naming.factory.initial=org.jboss.naming.remote.client.InitialContextFactory
java.naming.provider.url=remote://xyz:4447,remote://xyz:4447
java.naming.security.principal=qaappmq
java.naming.security.credentials=xyz123
jms.username=qaappmq
jms.password=ixyz123
jboss.naming.client.ejb.context=true
In Xml configuration file 在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>
While running the test case it is throwing 在运行测试用例时,它正在投掷
Caused by: java.lang.ClassNotFoundException: ${java.naming.factory.initial}
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:72)
at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:61)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:672)
... 92 common frames omitted
Tried directly putting static value in bean intialization it is working fine and even application is working fine with default configuration mentioned in application.properties. 尝试直接在bean初始化中放置静态值它工作正常甚至应用程序正常工作与application.properties中提到的默认配置。
Issue : Properties value is not intialized in XML configuration file 问题:属性值未在XML配置文件中初始化
尝试将TestPropertySource注释更改为:
@TestPropertySource(locations = "classpath:application-test.properties")
Add @ActiveProfiles("test")
to your test class 将
@ActiveProfiles("test")
添加到您的测试类
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = { App.class }, webEnvironment = WebEnvironment.RANDOM_PORT)
@ContextConfiguration
@TestPropertySource("classpath:/application-test.properties")
@ActiveProfiles("test")
public class CheckingServiceTest {
Remove XML Configuration from Project and Try to create each bean annotation driven. 从Project中删除XML配置并尝试创建驱动的每个bean注释。
Assigned value each varible using @Value or create seperate class using 使用@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);
}
} }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.