JAXB名称空间解组在Java8U45和8u111之间的更改

JAXB名称空间解组在Java8U45和8u111之间的更改,java,xml,jaxb,Java,Xml,Jaxb,我已经查看了这两个版本之间的jaxb和java变更日志,结果空手而归 在8u45中,此代码工作正常 package-info.java @javax.xml.bind.annotation.XmlSchema( namespace = "http://www.example.org", elementFormDefault = XmlNsForm.QUALIFIED ) package com.rezometry.fw.net.soap; import javax.xml.

我已经查看了这两个版本之间的jaxb和java变更日志,结果空手而归

在8u45中,此代码工作正常

package-info.java

@javax.xml.bind.annotation.XmlSchema(
    namespace = "http://www.example.org",
    elementFormDefault = XmlNsForm.QUALIFIED  
) package com.rezometry.fw.net.soap;

import javax.xml.bind.annotation.XmlNsForm;
Foo.java

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)
@XmlRootElement(name = "foo")
public class Foo {
    @XmlElement( name = "bar", required = true )
    public String bar;
}
Test.java

import javax.xml.transform.stream.StreamSource;
import javax.xml.bind.JAXB;
import java.io.StringReader;

import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.junit.Assert.assertThat;
@Test public void testJaxB(){
    Foo sample = JAXB.unmarshal( new StreamSource( new StringReader( "<foo><bar>bar1</bar></foo>" ) ), Foo.class );
    assertThat( sample.bar, is("bar1") );
}
import javax.xml.transform.stream.StreamSource;
导入javax.xml.bind.JAXB;
导入java.io.StringReader;
导入静态org.hamcrest.CoreMatchers.is;
导入静态org.hamcrest.CoreMatchers.nullValue;
导入静态org.junit.Assert.assertThat;
@测试公共void testJaxB(){
Foo sample=JAXB.unmarshal(新的StreamSource(新的StringReader(“bar1”)),Foo.class);
资产(sample.bar,即“bar1”);
}
但在8u111中,sample.bar为空。我已经阅读了关于xml文档中缺少名称空间的各种其他答案,但我想确保我没有修补以后可能会更改的错误

我在intellij中看到了这种情况,设置上的唯一区别是我使用的java版本。所有其他库都是相同的