2012-09-05 44 views
1

我在使用maven的grails中運行測試用例,並獲得了以下堆棧跟蹤。使用maven在grails中運行測試用例時加載器約束違規

我有以下衝突。

loader constraint violation: when resolving field "DATETIME" the class loader (instance of org/codehaus/groovy/grails/cli/support/GrailsRootLoader) of the referring class, javax/xml/datatype/DatatypeConstants, and the class loader (instance of <bootloader>) for the field's resolved type, javax/xml/namespace/QName, have different Class objects for that type 

java.lang.LinkageError: loader constraint violation: when resolving field "DATETIME" the class loader (instance of org/codehaus/groovy/grails/cli/support/GrailsRootLoader) of the referring class, javax/xml/datatype/DatatypeConstants, and the class loader (instance of <bootloader>) for the field's resolved type, javax/xml/namespace/QName, have different Class objects for that type 
    at com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl.<clinit>(RuntimeBuiltinLeafInfoImpl.java:224) 
    at com.sun.xml.bind.v2.model.impl.RuntimeTypeInfoSetImpl.<init>(RuntimeTypeInfoSetImpl.java:61) 
    at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.createTypeInfoSet(RuntimeModelBuilder.java:127) 
    at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.createTypeInfoSet(RuntimeModelBuilder.java:79) 
    at com.sun.xml.bind.v2.model.impl.ModelBuilder.<init>(ModelBuilder.java:152) 
    at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.<init>(RuntimeModelBuilder.java:87) 
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:422) 
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:286) 
    at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:139) 
    at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:117) 
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:211) 
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:372) 
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574) 
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:522) 
    at com.sun.xml.ws.spi.ProviderImpl$2.run(ProviderImpl.java:220) 
    at com.sun.xml.ws.spi.ProviderImpl$2.run(ProviderImpl.java:218) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.sun.xml.ws.spi.ProviderImpl.getEPRJaxbContext(ProviderImpl.java:217) 
    at com.sun.xml.ws.spi.ProviderImpl.<clinit>(ProviderImpl.java:88) 
    at java.lang.Class.newInstance0(Class.java:355) 
    at java.lang.Class.newInstance(Class.java:308) 
    at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:36) 
    at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:95) 
    at javax.xml.ws.spi.Provider.provider(Provider.java:82) 
    at javax.xml.ws.Service.<init>(Service.java:56) 
    at javax.xml.ws.Service.create(Service.java:698) 
    at com.j2.api.fax.myaccount.client.MyaccountClient$1.makeObject(MyaccountClient.java:28) 
    at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1148) 
    at com.j2.api.fax.myaccount.client.MyaccountClient.authenticateByPhoneNumber(MyaccountClient.java:66) 
    at com.j2.api.fax.myaccount.client.MyaccountClient$authenticateByPhoneNumber.call(Unknown Source) 
    at com.j2.helpers.LoginHelper.authenticateCustomerByPhoneNumber(LoginHelper.groovy:86) 
    at com.j2.helpers.LoginHelper$authenticateCustomerByPhoneNumber.call(Unknown Source) 
    at com.j2.spa.MobileService.login(MobileService.groovy:508) 
    at com.j2.spa.MobileService$login.call(Unknown Source) 
    at com.j2.spa.MobileController$_closure7.doCall(MobileController.groovy:109) 
    at com.j2.spa.MobileController$_closure7.call(MobileController.groovy) 
    at MobileControllerTests.testLogin_Failure_UsernameNotFound(MobileControllerTests.groovy:42) 

我已經嘗試了很多,但無法解決它。

任何幫助大大appriciated .. 感謝

+0

這可能是由插件引起的jar衝突。你能提供更多的信息,如Grails版本,插件安裝?這隻會發生在運行測試? –

+0

是的,它絕對只有在測試環境下才會發生。我使用的是Grails 1.3.7。和jaxws-rt.jar。 –

+0

你能發佈MobileControllerTests嗎? –

回答

0

我遇到類似的問題和解決的辦法是排除STAX的API模塊。我使用Gradle進行以下配置:

configurations { 
compile.exclude module: 'stax-api'} 

如果您使用的是maven,我認爲它是相似的。希望能幫助到你。

相關問題