在Spring中为Marshaller设置NamespacePrefixMapper

时间:2012-03-04 21:17:24

标签: spring properties javabeans

我根据这篇文章创建了一个marshallers池:

http://axixmiqui.wordpress.com/2009/09/01/spring-injecting-jaxb-unmarshaller/

我有一个在Spring中定义的NamespacePrefixMapper,我想在Marshaller实例化时设置属性,但我似乎无法做到。每次我尝试设置属性Netbeans都会因为内存不足而崩溃并崩溃,即使我有足够的内存可用。

这是我的Marshaller bean:

<bean id="restMarshallerTarget" class="javax.xml.bind.Marshaller" 
        factory-bean="jaxbContext" factory-method="createMarshaller" scope="prototype">
    </bean>

我的映射器的bean名称是“namespaceMapper”。我试过添加:

<property name="com.sun.xml.bind.namespacePrefixMapper" value="namespaceMapper" />

<property name="com.sun.xml.bind.namespacePrefixMapper" ref="namespaceMapper" />

, 和

<property name="com.sun.xml.bind.namespacePrefixMapper"><ref bean="namespaceMapper"/></property>

无论我如何尝试添加映射器,我都会开始例外处理......我做错了什么?

编辑

以下是其中一个例外:

引起:org.springframework.beans.factory.BeanCreationException:在类路径资源[context / spring-ws-servlet.xml]中定义名称为'restMarshallerTarget'的bean时出错:设置属性值时出错;嵌套异常是org.springframework.beans.NotWritablePropertyException:bean类的无效属性'com.sun.xml.bind.namespacePrefixMapper'[com.sun.xml.bind.v2.runtime.MarshallerImpl]:路径'com中的嵌套属性。 sun.xml.bind.namespacePrefixMapper'不存在;嵌套异常是org.springframework.beans.NotReadablePropertyException:bean类的无效属性'com'[com.sun.xml.bind.v2.runtime.MarshallerImpl]:Bean属性'com'不可读或具有无效的getter方法: getter的返回类型是否与setter的参数类型匹配?

这是我之前在代码中设置映射器的方式:

marshaller.setProperty(“com.sun.xml.bind.namespacePrefixMapper”,namespaceMapper);

0 个答案:

没有答案