小编Buc*_*chi的帖子

使用杰克逊库轻松打印XML

我正在尝试使用Jackson库通过使用JAXB注释将Java对象序列化为XML.但是,我在打印XML输出时遇到了一个问题.

这是我的示例代码用法:

ObjectMapper mapper = new XmlMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
String xml = mapper.writeValueAsString(person);
Run Code Online (Sandbox Code Playgroud)

而且,我看到了以下异常.这里的问题是Jackson使用Stax2Writer作为XML编写器,而Stax2似乎不支持编写原始字符串(在这种情况下,DefaultPrettyPrinter尝试将"\n"写为原始字符串).

    com.fasterxml.jackson.databind.JsonMappingException: Not implemented (through reference chain: xml.serialization.jackson.dto.Person["name"])
    at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:232)
    at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:197)
    at com.fasterxml.jackson.databind.ser.std.StdSerializer.wrapAndThrow(StdSerializer.java:187)
    at com.fasterxml.jackson.dataformat.xml.ser.XmlBeanSerializer.serializeFields(XmlBeanSerializer.java:174)
    at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:152)
    at com.fasterxml.jackson.dataformat.xml.ser.XmlSerializerProvider.serializeValue(XmlSerializerProvider.java:92)
    at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:2818)
    at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:2275)
    at xml.serialization.jackson.SerializationTest.main(SerializationTest.java:46)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.lang.UnsupportedOperationException: Not implemented
    at org.codehaus.stax2.ri.Stax2WriterAdapter.writeRaw(Stax2WriterAdapter.java:380)
    at org.codehaus.stax2.ri.Stax2WriterAdapter.writeRaw(Stax2WriterAdapter.java:373)
    at com.fasterxml.jackson.dataformat.xml.util.DefaultXmlPrettyPrinter$Lf2SpacesIndenter.writeIndentation(DefaultXmlPrettyPrinter.java:498)
    at com.fasterxml.jackson.dataformat.xml.util.DefaultXmlPrettyPrinter.writeLeafElement(DefaultXmlPrettyPrinter.java:271)
    at com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator.writeString(ToXmlGenerator.java:489)
    at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:39)
    at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:21)
    at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:541)
    at com.fasterxml.jackson.dataformat.xml.ser.XmlBeanSerializer.serializeFields(XmlBeanSerializer.java:161)
    ... 10 more
Run Code Online (Sandbox Code Playgroud)

有关如何解决它的任何想法?

xml pretty-print jackson

13
推荐指数
1
解决办法
1万
查看次数

我们可以使用kubeadm在完全离线模式下安装Kubernetes吗?

我需要在完全脱机模式下安装Kubernetes集群.我可以按照http://kubernetes.io/docs/getting-started-guides/scratch/上的所有说明进行操作,并从二进制文件安装,但这似乎是一个涉及的设置.安装使用kubeadm非常简单但我没有看到任何关于我是否可以通过在.deb本地下载软件包来安装集群的文​​档.

任何指向该方向的指标都非常感谢.

offline kubernetes kubeadm

8
推荐指数
1
解决办法
3144
查看次数

我们可以覆盖另一个配置中一个xml配置中声明的spring bean吗?

我是Spring的新手,所以这个问题可能有一个简单的答案,所以如果我问一些愚蠢的事情,请耐心等待.

我有一个全局弹簧配置文件,我想在许多应用程序中使用,我想在不同的应用程序中以不同的方式覆盖几个bean的一些属性.你能建议最好的方法吗?

例如,我有类似的东西global.xml.

<bean id="testInstance" class="testClass">
    <property name="mem1" ref="val1"/>
    <property name="mem2" ref="val2"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

现在,我想testInstance从不同的spring配置中引用并在覆盖后使用它mem1.春天有可能吗?我需要使用自定义标签吗?

java spring

6
推荐指数
1
解决办法
2万
查看次数

当非守护进程线程无限期地等待锁定时,Python的sys.exit行为

我是Python的新手,在以下情况下想了解sys.exit()的行为。

主线程调用sys.exit(),但是还有另一个非守护进程线程已经无限期地等待某个锁。

我已经在我的程序中对此进行了测试,并且看起来整个程序没有退出。这是预期的吗?我不确定非守护进程线程是否正在处理SystemExit异常,因为该异常位于第三方库中。

在此先感谢您的帮助。

python locking exit

4
推荐指数
1
解决办法
1447
查看次数

我可以同时在同一台计算机上使用azure-cli访问多个azure帐户吗?

我们实际上有多个azure帐户(出于某些合理的原因),我希望能够在同一台计算机上同时为不同的帐户运行azure-cli命令。

问题是,一旦我使用登录到一个Azure帐户azure login,令牌将存储在〜/ .azure目录中,因此我不确定是否可以在同一台计算机上完全同时登录另一个帐户。

有没有办法告诉azure-cli不要在本地配置文件中存储令牌,以便我可以使用azure-cli从同一台计算机同时连接到多个帐户?

azure azure-cli

4
推荐指数
2
解决办法
1111
查看次数

标签 统计

azure ×1

azure-cli ×1

exit ×1

jackson ×1

java ×1

kubeadm ×1

kubernetes ×1

locking ×1

offline ×1

pretty-print ×1

python ×1

spring ×1

xml ×1