-1

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)

私の開発環境は Windows 7 で Tomcat 6.0、jdk 1.6 です。この問題の解決を手伝ってもらえますか?

4

1 に答える 1

0

クラス javax.xml.bind.annotation.AccessType の 2 つの異なるバージョンがあるようです。クラスパスに jax-api.jar が重複している可能性があります。

于 2012-12-29T08:06:39.990 に答える