当我在编组一个对象时,我得到了这个异常:javax.xml.bind.JAXBExctive: class订阅,它的任何超类对此上下文都是已知的。
我知道有@xmlsee和修改jaxb类的解决方案,但当我们从XSD/WSDL文件生成jaxb类时,我们无法更改它们。因此,这些解决方案不适用于这种情况。
public static String getStringFromSubscription(Subscription subscription) throws MbException
{
Marshaller marshaller;
StringWriter stringWriter = new StringWriter();
try
{
marshaller = JAXBContext.newInstance(com.myhealth.com.ObjectFactory.class
.getPackage().getName()).createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
marshaller.setProperty("com.sun.xml.bind.xmlDeclaration", Boolean.FALSE);
marshaller.marshal(subscription, stringWriter);
}
catch (Exception e)
{
throw new MbException(e);
}
return stringWriter;
}
据我所知,有三种解决方案。
ObjectFactory类是在从xsd/wsdl创建jaxb时自动创建的。
marshaller.marshal(new com.myhealth.com.ObjectFactory().createSubscription(subscription), stringWriter);
JAXBContext.newInstance(Subscription.class).createMarshaller();
JAXBContext.newInstance(com.myhealth.com.ObjectFactory.class
.getPackage().getName()).createMarshaller();
您需要在JAXBContext.new实例化中指定上下文(也称为包名)名称。它将定位位于该包中的
ObjectFactory.class
,如留档(pt.1)中所示。
如果在创建JAXBContext时遇到错误,例如
无法在包中找到ObjectFactory.class或jaxb.index
- conextPath中包含的全局元素之间的歧义
- 未能找到上下文工厂提供程序属性的值
- 在同一ConextPath上混合来自不同提供程序的架构派生包
public static String getStringFromSubscription(Subscription subscription) throws MbException {
Marshaller marshaller;
StringWriter stringWriter = new StringWriter();
try {
marshaller = JAXBContext.newInstance("com.myhealth.com").createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
marshaller.setProperty("com.sun.xml.bind.xmlDeclaration", Boolean.FALSE);
marshaller.marshal(subscription, stringWriter);
} catch (Exception e) {
throw new MbException(e);
}
return stringWriter;
}
有人能帮我吗为什么下面被扔了 线程“main”javax中出现异常。xml。绑定JAXBException:类com。jaxb。模型复制复制Snapshot及其任何超类都不为本文所知。在com上。太阳xml。绑定v2。运行时。JAXBContextImpl。getBeanInfo(JAXBContextImpl.java:588)位于com。太阳xml。绑定v2。运行时。XMLSerializer
我有一些使用JAXB API类的代码。当我用Java11运行代码时,在运行时我会得到错误,指示“在执行时丢失了一个必需的类”。
这里是Hibernate代码。 下面是servlet。 下面是我运行应用程序时的结果。
问题内容: 我正在尝试通过REST Web服务传递对象。以下是我的课程,使用一些示例代码说明了我需要的功能。 REST Web服务类方法 反应等级 部门课 当我在其余Web服务类中调用getDepartments方法时,它将返回以下异常。但是,如果我在Response类中将 有效负载的 Object 类型更改为 Department ,它将正确返回json响应。但是由于我需要将此Response类
我试图在Java 9上运行我的Spring Boot应用程序,我遇到了JAXB问题,这在指南中有描述,但对我来说并不适用。我添加了对JAXB api的依赖,应用程序开始工作。如果由于缺少JAXB而导致以下异常缺少使用Java版本的实现
我是Android的初学者。我无法在Android Studio中解决此错误。无论何时运行应用程序,都会发生此错误。我怎么修理它? 错误:无法加载类““此意外错误的可能原因包括: Gradle的依赖项缓存可能已损坏(这有时会在网络连接超时后发生。)重新下载依赖项和同步项目(需要网络)