2015-11-02 51 views
0

我在春天做了第一步。在我的項目中,我需要使用SOAP HTTPS Web服務。我添加了一個JKSKeyManager bean來測試config xml和ClassPathResource帶證書的bean。但是,當我運行JUnit測試,我得到春季JUnit ClassPathResource FileNotFoundException

java.io.FileNotFoundException:類路徑的資源[來源/主/​​資源/ cacerts中]不能被解析到URL,因爲它不存在

但文件絕對在那個目錄中。

下面是我的配置XML:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" 
xmlns:util="http://www.springframework.org/schema/util" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">` 
<bean id="cucmsql" class="com.myname.myproject.CUCMDatabaseConnector" factory-method="getInstance"> 
    <property name="marshaller" ref="marshaller"></property> 
    <property name="unmarshaller" ref="marshaller"></property> 
    <property name="properties" ref="properties"/> 
</bean> 
<bean id="properties" class="com.myname.myproject.SystemProperties" factory-method="getInstance"> 
</bean> 
<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller"> 
    <property name="contextPath" value="com.cisco.axl" /> 
</bean> 
<bean id="cacertsFile" class="org.springframework.core.io.ClassPathResource"> 
    <constructor-arg value="src/main/resources/cacerts"/> 
</bean> 
<util:property-path id="cacertsUtil" path="cacertsFile.file"/>` 
<bean id="keyManager" class="org.springframework.security.saml.key.JKSKeyManager"> 
    <constructor-arg ref="cacertsUtil"></constructor-arg> 
    <constructor-arg> 
     <map> 
      <entry key="cucmpublisher" value="changeit"></entry> 
      <entry key="cucmsubcriber" value="changeit"></entry> 
     </map> 
    </constructor-arg> 
    <constructor-arg type="java.lang.String" value="changeit"></constructor-arg> 
</bean> 
</beans> 

我在做什麼錯?

回答

1

從您的項目結構判斷,您可能正在使用Maven,這意味着src/main/resources是源文件夾。

因此,您需要更改的配置是:

<bean id="cacertsFile" class="org.springframework.core.io.ClassPathResource"> 
    <constructor-arg value="/cacerts" /> 
</bean> 

的路徑類路徑的資源是不是相對於項目的根,而是項目源文件夾中。

+0

謝謝。當然,我應該提及我使用過Maven –