Java 无法从类访问超类

Java 无法从类访问超类,java,jaxb,illegalaccessexception,Java,Jaxb,Illegalaccessexception,我创建了一个简单的java客户机,它基于XSD生成的类构建XML消息,然后将其发送到web服务。 当我从工作站测试它时,它工作正常,但当我将类加载到Oracle数据库时,会出现以下错误: Exception in thread "Root Thread" java.lang.IllegalAccessError: cannot access superclass from class at sun.misc.Unsafe.defineClass(Native Method) at sun.ref

我创建了一个简单的java客户机,它基于XSD生成的类构建XML消息,然后将其发送到web服务。 当我从工作站测试它时,它工作正常,但当我将类加载到Oracle数据库时,会出现以下错误:

Exception in thread "Root Thread" java.lang.IllegalAccessError: cannot access superclass from class
at sun.misc.Unsafe.defineClass(Native Method)
at sun.reflect.ClassDefiner.defineClass(ClassDefiner.java)
at sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java)
at java.security.AccessController.doPrivileged(Native Method)
at sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java)
at sun.reflect.MethodAccessorGenerator.generateConstructor(MethodAccessorGenerator.java)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java)
at java.lang.reflect.Constructor.newInstance(Constructor.java)
at java.lang.reflect.Proxy.newInstance(Proxy.java)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java)
at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java)
at java.lang.reflect.Field.declaredAnnotations(Field.java)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java)
at com.sun.xml.internal.bind.v2.model.annotation.RuntimeInlineAnnotationReader.getAllFieldAnnotations(RuntimeInlineAnnotationReader.java)
at com.sun.xml.internal.bind.v2.model.annotation.RuntimeInlineAnnotationReader.getAllFieldAnnotations(RuntimeInlineAnnotationReader.java)
at com.sun.xml.internal.bind.v2.model.impl.ClassInfoImpl.findFieldProperties(ClassInfoImpl.java)
at com.sun.xml.internal.bind.v2.model.impl.ClassInfoImpl.getProperties(ClassInfoImpl.java)
我认为这可能是由于类位于不同的包中,所以我将所有的类都移动到一个默认包中,但没有帮助。 我还用public替换了所有受保护的/私有的字段/类,仍然是相同的问题

这是我认为它失败的地方:

JAXBContext context = JAXBContext.newInstance(PurchaseOrder.class);
谢谢你的帮助。谢谢

PurchaseOrder类:

<code>
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "PurchaseOrder", propOrder = {
    "purchaseOptions"
})
@XmlRootElement(name = "PurchaseOrder")
public class PurchaseOrder {

    @XmlElement(name = "PurchaseOptions")
    public ArrayOfPurchaseOptionDescription purchaseOptions;

    public ArrayOfPurchaseOptionDescription getPurchaseOptions() {
        return purchaseOptions;
    }

    public void setPurchaseOptions(ArrayOfPurchaseOptionDescription value) {
        this.purchaseOptions = value;
    }
}

编辑:

@xmlacessortype(xmlacesstype.FIELD)
@XmlType(name=“ArrayOfPurchaseOptionDescription”,比例器={
“purchaseOptionDescription”
})
公共类ArrayOfPurchaseOptionDescription{
@xmlement(name=“PurchaseOptionDescription”,nillable=true)
公共列表购买选项说明;
公共列表getPurchaseOptionDescription(){
如果(purchaseOptionDescription==null){
purchaseOptionDescription=new ArrayList();
}
返回此.purchaseOptionDescription;
}
}

我认为应该删除XML类型名称,如:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "purchaseOptions"
})
@XmlRootElement(name = "PurchaseOrder")
public class PurchaseOrder {
...
}

我认为应该删除XML类型名称,如:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "purchaseOptions"
})
@XmlRootElement(name = "PurchaseOrder")
public class PurchaseOrder {
...
}

请提供类的代码
PurchaseOrder.class
。我用PurchaseOrder类更新了我的帖子请提供类的代码
PurchaseOrder.class
。我用PurchaseOrder类更新了帖子谢谢Mickeel。PurchaseOrder类引用其他类,如ArrayOfPurchaseOptionDescription(添加在我的帖子中),该类随后引用PurchaseOptionDescription类。还有许多其他类被引用。它们都有名称=类名的XMLType注释。您认为我应该删除所有类中的XMLType名称注释吗?不确定XMLType name属性与我收到的错误消息有何关联。谢谢Mickeel。PurchaseOrder类引用其他类,如ArrayOfPurchaseOptionDescription(添加在我的帖子中),该类随后引用PurchaseOptionDescription类。还有许多其他类被引用。它们都有名称=类名的XMLType注释。您认为我应该删除所有类中的XMLType名称注释吗?不确定XMLType name属性与我收到的错误消息的关系。