2012-11-06 45 views
2

当使用莫西作为JAXB实现, 下面的类会导致一个例外:为什么JAXB Moxy抛出ArrayIndexOutOfBoundsException?

@XmlRootElement(name="fraPage") 
@XmlAccessorType(XmlAccessType.FIELD) 
case class FraPage(@ScalaXmlTypeAdapter(value=classOf[FraSeqAdapter]) @ScalaXmlElementWrapper(name="fras") data:Seq[Fra],@XmlTransient id: FraPageId, @ScalaXmlElement header:FraPageHeader) extends PageWithId[FraPageId]{ 


    private def this()= this(null,null,null) 
    lazy val isEmpty = data.isEmpty 



} 


Exception in thread "main" javax.xml.bind.JAXBException: 0 
- with linked exception: 
[java.lang.ArrayIndexOutOfBoundsException: 0] 
    at org.eclipse.persistence.jaxb.JAXBContext$TypeMappingInfoInput.createContextState(JAXBContext.java:908) 
    at org.eclipse.persistence.jaxb.JAXBContext.<init>(JAXBContext.java:157) 
    at org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:170) 
    at org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:157) 
    at org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:117) 
    at org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:107) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:202) 
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:363) 
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574) 
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:522) 
    at com.gottex.gottware.services.Dummy$.main(Dummy.scala:16) 
    at com.gottex.gottware.services.Dummy.main(Dummy.scala) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0 
    at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateDirectCollectionMapping(MappingsGenerator.java:2004) 
    at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateMapping(MappingsGenerator.java:501) 
    at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateMappings(MappingsGenerator.java:2265) 
    at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateMappings(MappingsGenerator.java:2225) 
    at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateProject(MappingsGenerator.java:201) 
    at org.eclipse.persistence.jaxb.compiler.Generator.generateProject(Generator.java:185) 
    at org.eclipse.persistence.jaxb.JAXBContext$TypeMappingInfoInput.createContextState(JAXBContext.java:913) 
    at org.eclipse.persistence.jaxb.JAXBContext$TypeMappingInfoInput.createContextState(JAXBContext.java:905) 
    ... 20 more 

Process finished with exit code 1 

发生了什么事,为什么?我使用JDK 1.6.0.25与莫西版本2.4.0

+1

能否请你列出组件的版本中使用:您可以使用下面的错误跟踪我们在这个问题上取得进展?解决这个问题的最好方法是钻取源代码,但不知道版本,2004年的行并没有多说 –

+0

另外,我假设这个错误不相关:https://bugs.eclipse.org/bugs /show_bug.cgi?id=331144但值得检查 –

回答

相关问题