使用getResourceAsStream在mule中注入文件

时间:2013-10-29 15:12:02

标签: java spring nullpointerexception initialization mule

我正在使用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);
        }       }

2 个答案:

答案 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