gpt4 book ai didi

jaxb - 线程 "main"中的异常 javax.xml.bind.JAXBException : Provider com. sun.xml.bind.v2.ContextFactory 无法实例化

转载 作者:行者123 更新时间:2023-12-04 20:05:04 24 4
gpt4 key购买 nike

我正在尝试测试 JAXB 解码器/编码器。这是我的代码

JAXBContext context = JAXBContext.newInstance(ClientUser.class.getPackage().getName());

和我的实体的代码
@XmlRootElement(name = "user")
public class ClientUser {
private String name;

public ClientUser() {}

public ClientUser(String name) {
this.name = name;
}

@XmlElement(name = "name")
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

即使我添加到实体类工厂类
@XmlRegistry
class ObjectFactory {
ClientUser createPerson() {
return new ClientUser();
}
}

我仍然不断收到此异常
Exception in thread "main" javax.xml.bind.JAXBException: Provider com.sun.xml.bind.v2.ContextFactory could not be instantiated: javax.xml.bind.JAXBException: "com.example.ws.poc.entity" doesnt contain ObjectFactory.class or jaxb.index
- with linked exception:
[javax.xml.bind.JAXBException: "com.example.ws.poc.entity" doesnt contain ObjectFactory.class or jaxb.index]
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:146)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:335)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:431)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:394)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:298)

我该如何解决这个错误?

最佳答案

JAXB 实现不进行包扫描。如果您从包名引导,JAXB 将查找 ObjectFactory (用 @XmlRegistry 注释)或 jaxb.index包含短类名的文件,每个都在一个新行上。

如果您没有这两个项目,您可以创建 JAXBContext在域类本身上。

JAXBContext jc = JAXBContext.newInstance(Foo.class, Bar.class);

关于jaxb - 线程 "main"中的异常 javax.xml.bind.JAXBException : Provider com. sun.xml.bind.v2.ContextFactory 无法实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26558318/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com