Pourquoi ne JAXBContext doivent être spécifiquement dit à propos d'une classe qui est déjà dans le paquet?

Ce programme:

import foo.bar.baz.ClassSpecificallyIncluded;  
import javax.xml.bind.JAXBContext;  
public class A {  
    public static void main(String[] args) throws Exception {  
        System.out.println(JAXBContext.newInstance(ClassSpecificallyIncluded.class).toString());  
        System.out.println(JAXBContext.newInstance("foo.bar.baz").toString());  
    }  
}  

produit de sortie différente de la première et de la deuxième JAXBContext:

jar:file:/C:/dev/trunk/rt/tomcat/shared/lib/webservices-rt-2.0.1.jar!/com/sun/xml/bind/v2/runtime/JAXBContextImpl.class Construire-Id: 1.0
Les Classes connues à ce contexte:
[B
boolean
octet
char
foo.bar.baz.Class1
foo.bar.baz.Class1$NestedClass
foo.bar.baz.Class2
foo.bar.baz.ClassSpecificallyIncluded
foo.bar.baz.AnotherClass
com.soleil.xml.bind.l'api.CompositeStructure
double
flotteur
int
java.awt.Image
java.io.Fichier
java.lang.Boolean
java.lang.Octet
java.lang.Caractère
java.lang.Class
java.lang.Double
java.lang.Flotteur
java.lang.Entier
java.lang.Long
java.lang.Objet
java.lang.Court
java.lang.Chaîne
java.lang.Void
java.les mathématiques.BigDecimal
java.les mathématiques.BigInteger
java.net.URI
java.net.URL
java.util.Calendrier
java.util.Date
java.util.GregorianCalendar
java.util.UUID
javax.l'activation.DataHandler
javax.xml.bind.JAXBElement
javax.xml.type de données.Durée
javax.xml.type de données.XMLGregorianCalendar
javax.xml.espace de noms.QName
javax.xml.transformer.Source
long
court
void

jar:file:/C:/dev/trunk/rt/tomcat/shared/lib/webservices-rt-2.0.1.jar!/com/sun/xml/bind/v2/runtime/JAXBContextImpl.class Construire-Id: 1.0
Les Classes connues à ce contexte:
[B
boolean
octet
char
foo.bar.baz.Class1
foo.bar.baz.Class1$NestedClass
foo.bar.baz.Class2
<<< CLASSE qui MANQUE ICI>>>
foo.bar.baz.AnotherClass
com.soleil.xml.bind.l'api.CompositeStructure
double
flotteur
int
java.awt.Image
java.io.Fichier
java.lang.Boolean
java.lang.Octet
java.lang.Caractère
java.lang.Class
java.lang.Double
java.lang.Flotteur
java.lang.Entier
java.lang.Long
java.lang.Objet
java.lang.Court
java.lang.Chaîne
java.lang.Void
java.les mathématiques.BigDecimal
java.les mathématiques.BigInteger
java.net.URI
java.net.URL
java.util.Calendrier
java.util.Date
java.util.GregorianCalendar
java.util.UUID
javax.l'activation.DataHandler
javax.xml.bind.JAXBElement
javax.xml.type de données.Durée
javax.xml.type de données.XMLGregorianCalendar
javax.xml.espace de noms.QName
javax.xml.transformer.Source
long
court
void

Et pourtant, ClassSpecificallyIncluded est dans le foo.bar.baz package:

// 
//This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.1.10 in JDK 6   
//See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>   
//Any modifications to this file will be lost upon recompilation of the source schema.   
//Generated on: 2012.05.14 at 10:47:17 PM IST   
// 

package foo.bar.baz;  

import javax.xml.bind.annotation.XmlAccessType;  
import javax.xml.bind.annotation.XmlAccessorType;  
import javax.xml.bind.annotation.XmlElement;  
import javax.xml.bind.annotation.XmlRootElement;  


@XmlAccessorType(XmlAccessType.FIELD)  
@XmlType(name = "", propOrder = {  
    "applicationArea",  
    "dataArea"  
})  
@XmlRootElement(name = "ClassSpecificallyIncluded")  
public class ClassSpecificallyIncluded {...  

Le classpath et le chargeur de classe sont les mêmes pour les deux JAXBContexts.

Alors pourquoi ne pas la deuxième JAXBContext savoir sur ClassSpecificallyIncluded?

OriginalL'auteur Jim Showalter | 2013-11-28