Java 包com.sun.xml.internal.bind.v2.model.annotation不存在

Java 包com.sun.xml.internal.bind.v2.model.annotation不存在,java,maven-2,jaxb,exception,Java,Maven 2,Jaxb,Exception,我正试图使用一种解决方案来使用jaxb序列化异常。() 我需要为该解决方案实现的类需要引用以下com.sun类 import com.sun.xml.internal.bind.v2.model.annotation.AbstractInlineAnnotationReaderImpl; import com.sun.xml.internal.bind.v2.model.annotation.Locatable; import com.sun.xml.internal.bind.v2.model

我正试图使用一种解决方案来使用jaxb序列化异常。()

我需要为该解决方案实现的类需要引用以下com.sun类

import com.sun.xml.internal.bind.v2.model.annotation.AbstractInlineAnnotationReaderImpl;
import com.sun.xml.internal.bind.v2.model.annotation.Locatable;
import com.sun.xml.internal.bind.v2.model.annotation.RuntimeAnnotationReader;
import com.sun.xml.internal.bind.v2.model.annotation.RuntimeInlineAnnotationReader;
当我在Eclipse中编译和运行代码时,它工作得很好。但是,当我使用Maven编译代码时,它无法抱怨com.sun包,比如“package com.sun.xml.internal.bind.v2.model.annotation不存在”

eclipse和maven都在使用JDK1.6,所以我不明白为什么会发生这种情况。这些com.sun类不在JDK中吗

编辑:
我最终决定这是不可能的。我只是创建了一个新bean,复制了我需要的信息并使用了它。

如果包com.sun.*中有一个类,那就意味着它是由sun开发的,而不是它是JDK的一部分

JDK中的Sun类前缀为Sun.*,并且不是公共支持接口的一部分,因此应小心使用。从:

Sun在Java 2 SDK标准版中包含的类分为包组Java、、org.*和Sun。。除了太阳。包是Java平台的标准部分,将来将得到支持。通常,Java平台之外的软件包(如sun.)在操作系统平台(Solaris、Windows、Linux、Macintosh等)之间可能会有所不同,并且可以随时更改SDK版本(1.2、1.2.1、1.2.3等),而不另行通知。包含对sun的直接调用的程序。包不是100%纯Java。换言之:

java.,javax。Java 2平台标准版API规范中记录的包构成了官方的、受支持的公共接口。

如果Java程序只直接调用这些包中的API,它将在所有Java兼容平台上运行,而不管底层操作系统平台如何

sun.*软件包不是受支持的公共界面的一部分。

直接调用sun.*包的Java程序不保证在所有Java兼容平台上都能工作。事实上,即使在同一平台上的未来版本中,这样的程序也不能保证工作

话虽如此,您列出的这些类在存储库中的以下工件中可用:

<dependency>
  <groupId>javax.xml</groupId>
  <artifactId>jaxb-impl</artifactId>
  <version>2.1</version>
</dependency>

javax.xml
jaxb impl
2.1