2013-02-07 25 views
0

我有一個jar文件,它具有在applicationContext.xml中定義的bean。我已經jar文件添加到lib目錄,並修改了我的構建配置到ClassNotFound在Grails中加載bean時的期望

運行「的內容:內容考官數據:1.0」

我已經定義在資源豆。常規如下

豆= {

importBeans("classpath*:/applicationContext.xml") 

}

這個bean定義如下

<?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:mongo="http://www.springframework.org/schema/data/mongo" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.1.xsd 
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> 

    <mongo:mongo host="localhost" port="27017" /> 


    <bean class="org.springframework.data.mongodb.core.MongoTemplate" 
     id="mongoTemplate"> 
     <constructor-arg ref="mongo"></constructor-arg> 
     <constructor-arg value="documents"></constructor-arg> 
    </bean> 
    <mongo:db-factory id="mongoDbFactory" dbname="database" mongo-ref="mongo"/> 
    <mongo:mapping-converter id="converter" /> 

    <bean id="gridTemplate" class="org.springframework.data.mongodb.gridfs.GridFsTemplate"> 
    <constructor-arg ref="mongoDbFactory" /> 
    <constructor-arg ref="converter" /> 
    </bean> 

    <bean id="ceMongoStore" class="gov.ic.isso.ce.service.mongoimpl.CEStorageMongoImpl"> 
    <constructor-arg ref="mongoTemplate" /> 
    <constructor-arg ref="gridTemplate" /> 
    <constructor-arg value="cedocs" /> 
    </bean> 
</beans> 

我得到一個錯誤運行具有運行應用程序選項

Error 2013-02-07 16:08:24,806 [localhost-startStop-1] ERROR context.GrailsContextLoader - Error executing bootstraps: Cannot find class [gov.ic.isso.ce.service.mongoimpl.CEStorageMongoImpl] for bean with name 'ceMongoStore' defined in URL [jar:file:/C:/development/projects/sentrytrunk/Latest/fc/content-examiner-web/lib/content-examiner-data-1.0.jar!/applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: gov.ic.isso.ce.service.mongoimpl.CEStorageMongoImpl 
Message: Cannot find class [gov.ic.isso.ce.service.mongoimpl.CEStorageMongoImpl] for bean with name 'ceMongoStore' defined in URL [jar:file:/C:/development/projects/sentrytrunk/Latest/fc/content-examiner-web/lib/content-examiner-data-1.0.jar!/applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: gov.ic.isso.ce.service.mongoimpl.CEStorageMongoImpl 
    Line | Method 
->> 303 | innerRun in java.util.concurrent.FutureTask$Sync 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 138 | run  in java.util.concurrent.FutureTask 
| 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker 
| 908 | run  in  '' 
^ 662 | run . . in java.lang.Thread 

Caused by ClassNotFoundException: gov.ic.isso.ce.service.mongoimpl.CEStorageMongoImpl 
->> 202 | run  in java.net.URLClassLoader$1 

應用程序時,當我用做jar文件的轉儲如下jar tvf我得到以下輸出

1472 Thu Feb 07 16:00:30 EST 2013 applicationContext.xml 
    709 Thu Feb 07 16:00:30 EST 2013 gov/ic/isso/ce/data/CEStorage.class 
    1946 Thu Feb 07 16:00:30 EST 2013 gov/ic/isso/ce/data/model/document/Document.class 
    1186 Thu Feb 07 16:00:30 EST 2013 gov/ic/isso/ce/data/model/document/DocumentStatus.class 
    5995 Thu Feb 07 16:00:30 EST 2013 gov/ic/isso/ce/service/mongoimpl/CEStorageMongoImpl.class 
    0 Thu Feb 07 16:00:34 EST 2013 META-INF/maven/ 
    0 Thu Feb 07 16:00:34 EST 2013 META-INF/maven/gov.ic.isso.content-examiner/ 
    0 Thu Feb 07 16:00:34 EST 2013 META-INF/maven/gov.ic.isso.content-examiner/content-examiner-data/ 
    1925 Thu Feb 07 15:54:44 EST 2013 META-INF/maven/gov.ic.isso.content-examiner/content-examiner-data/pom.xml 
    146 Thu Feb 07 16:00:34 EST 2013 META-INF/maven/gov.ic.isso.content-examiner/content-examiner-data/pom.properties 

回答

2

刪除runtime "content:content-examiner-data:1.0"或jar文件 - 你只需要一個。如果將jar文件添加到lib目錄中,則需要運行grails compile --refresh-dependencies以將其添加到不修復它的類路徑

+0

。仍然看到錯誤。有沒有其他的方法可以在Grails上放置豆子? – allthenutsandbolts

+0

發現這個問題,我不知道爲什麼春天當真正的原因是別的時候拋出這個錯誤。 – allthenutsandbolts