我有一个使用JAXB编组为XML的Object.一个元素包含一个包含引号(")的String.生成的XML具有""存在的位置.
即使这通常是首选,我需要我的输出匹配遗留系统.如何强制JAXB不转换HTML实体?
-
感谢您的答复.但是,我从未看到处理程序escape()被调用.你能看一看,看看我做错了什么吗?谢谢!
package org.dc.model;
import java.io.IOException;
import java.io.Writer;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import org.dc.generated.Shiporder;
import com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler;
public class PleaseWork {
public void prettyPlease() throws JAXBException {
Shiporder shipOrder = new Shiporder();
shipOrder.setOrderid("Order's ID");
shipOrder.setOrderperson("The woman said, \"How ya doin & stuff?\"");
JAXBContext context = JAXBContext.newInstance("org.dc.generated");
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.setProperty(CharacterEscapeHandler.class.getName(),
new CharacterEscapeHandler() {
@Override
public void escape(char[] ch, int start, int length,
boolean isAttVal, Writer out) throws IOException {
out.write("Called …Run Code Online (Sandbox Code Playgroud) 我正在使用JAXB将XML文件解组为Java对象 - 标准的东西.一旦JAXB完成了这个,我就想在新创建的对象上调用一个方法.
有机制这样做吗?我更喜欢这个对象,而不是外部实体,这样做可以将构造保持在一个地方.
谢谢.
在Tomcat 6.0.18中启动我的webapp后,我只使用初始化系统所需的内容来引导Spring - 即,目前,数据库迁移.在迁移成功完成之前,我不希望加载系统的任何部分.这可以防止其他bean在操作或甚至实例化之前必须等待迁移完成.
我有一个配置了dbMigrationDAO的startup-appcontext.xml,一个是ThreadPoolExecutor的startupManager,最后是一个FullSystemLauch bean.我通过setter注入将配置位置列表传递给FullSystemLaunch bean.FullSystemLaunch bean实现ServletContextAware,获取对当前WebApplicationContext的引用,因此我可以拥有ConfigurableListableBeanFactory.不幸的是,这个bean工厂isConfigurationFrozen()返回true,所以通过调用beanFactory.setConfigLocations(configLocations)没有任何效果.
我可以做到这一点,还是Spring阻止我这样做,因为它有点与众不同?如果理解这似乎是合理的,但也有点危险.是的,我愿意吹掉当前的上下文b/c初始化完成后不需要当前加载的单例.
感谢您的帮助.