我正在使用Mule 3.4。 我在/ src / main / resource / request中保存了一个xml文件,并使用initialize方法和资源作为流,尝试从类路径加载文件并获取空指针异常
我的配置如下spring.xml
<bean id="initSoapFault" class="org.hhmi.transformer.SOAPResponseTransformer" init-method="initialize" />
我的流程正在关注
<spring:beans>
<spring:import resource="classpath:conf/spring.xml"/>
</spring:beans>
我的变压器类是以下代码片段
public void initialize() throws IOException {
try {
inputStream =Thread.currentThread().getContextClassLoader().getResourceAsStream("classpath:request/soapFault.xml");
docXmlResponse = IOUtils.toString(inputStream);
} finally {
IOUtils.closeQuietly(inputStream);
} }
答案 0 :(得分:0)
问题很可能是您在调用classpath:
时使用“getResourceAsStream()
”前缀。该前缀应仅与Spring ResourceLoader
一起使用,但不能与标准Java classloader
一起使用。
答案 1 :(得分:0)
IT正在运作。我正在使用代码片段,它可能会帮助其他人
在变压器中获取bean。我使用以下
private volatile ClassPathXmlApplicationContext context;
public SOAPResponseTransformer() {
context = new ClassPathXmlApplicationContext(getConfigResources());
}
protected String getConfigResources()
{
return "conf/spring.xml";
}
然后调用你需要bean的地方
ResourceInjection injection = (ResourceInjection) context.getBean("initSoapFault");
injection.getter Method