java javax.xml.bind,Java 11包javax.xml.bind不存在

I'm trying to deserialize XML data into a Java content tree using JAXB, validating the XML data as it is unmarshalled:

try {

JAXBContext context = JAXBContext.newInstance("com.acme.foo");

Unmarshaller unmarshaller = context.createUnmarshaller();

unmarshaller.setSchema(schema);

FooObject fooObj = (FooObject) unmarshaller.unmarshal(new File("foo.xml"));

} catch (UnmarshalException ex) {

ex.printStackTrace();

} catch (JAXBException ex) {

ex.printStackTrace();

}

When I build the project with Java 8 it's fine, but building it with Java 11 fails with a compilation error:

package javax.xml.bind does not exist

How do I fix the issue?

解决方案

According to the release-notes, Java 11 removed the Java EE modules:

java.xml.bind (JAXB) - REMOVED

Java 8 - OK

Java 9 - DEPRECATED

Java 10 - DEPRECATED

Java 11 -

REMOVED

See JEP 320 for more info.

You can fix the issue by using alternate versions of the Java EE technologies. Simply add Maven dependencies that contain the classes you need:

javax.xml.bind

jaxb-api

2.3.0

com.sun.xml.bind

jaxb-core

2.3.0

com.sun.xml.bind

jaxb-impl

2.3.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值