0

我正在使用骡子 3.4。我在 /src/main/resource/request 中保留了一个 xml 文件,并使用初始化方法和资源作为流,尝试从类路径加载文件并获取空指针异常

我的配置如下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);
        }       }
4

2 回答 2

0

问题很可能是您classpath:在调用时使用了“”前缀getResourceAsStream()。该前缀只能与 Spring 结合使用ResourceLoader,而不能与标准 Java结合使用classloader

于 2013-10-29T15:16:18.353 回答
0

它正在工作。我正在放代码片段,它可能对其他人有帮助

在变压器中获取 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 
于 2013-11-01T17:20:13.337 回答