jaxb实现不适用于Windows 7

时间:2012-12-29 07:44:34

标签: java tomcat jaxb

我使用jaxb从xsd创建java类,但是当我尝试通过http发送xml时出现运行时错误

java.lang.annotation.AnnotationTypeMismatchException: Incorrectly typed data found for annotation element public abstract javax.xml.bind.annotation.AccessType javax.xml.bind.annotation.XmlAccessorType.value() (Found data of type Ljavax/xml/bind/annotation/XmlAccessType;.FIELD)
    sun.reflect.annotation.AnnotationTypeMismatchExceptionProxy.generateException(AnnotationTypeMismatchExceptionProxy.java:38)
    sun.reflect.annotation.AnnotationInvocationHandler.invoke(AnnotationInvocationHandler.java:56)
    $Proxy6.value(Unknown Source)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    com.sun.xml.bind.v2.model.annotation.LocatableAnnotation.invoke(LocatableAnnotation.java:60)
    $Proxy8.value(Unknown Source)
    com.sun.xml.bind.v2.model.impl.ClassInfoImpl.getAccessType(ClassInfoImpl.java:339)
    com.sun.xml.bind.v2.model.impl.ClassInfoImpl.getProperties(ClassInfoImpl.java:228)
    com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl.getProperties(RuntimeClassInfoImpl.java:87)
    com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:127)
    com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:49)
    com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:41)
    com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:189)
    com.sun.xml.bind.v2.model.impl.RegistryInfoImpl.<init>(RegistryInfoImpl.java:51)
    com.sun.xml.bind.v2.model.impl.ModelBuilder.addRegistry(ModelBuilder.java:232)
    com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:201)
    com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:327)
    com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:198)
    com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:76)
    com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:55)
    com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:124)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:132)
    javax.xml.bind.ContextFinder.find(ContextFinder.java:286)
    javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:358)
    javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:323)
    javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:244)
    com.arcot.jaxb.KECHPSWI.KECHPSWI.marshal(KECHPSWI.java:117)
    com.arcot.jaxb.servlet.ClientMachine.doPost(ClientMachine.java:39)
    com.arcot.jaxb.servlet.ClientMachine.doGet(ClientMachine.java:84)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

我的开发环境是Tomcat 6.0,Windows 7上的jdk 1.6,有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

看起来你有两个不同版本的类javax.xml.bind.annotation.AccessType。 可能是你的类路径中有重复的jax-api.jar。