0

我有一个无法解释的问题,刚刚出现。在生产中,RedHat 网络服务器操作系统已更新/修补,当它重新启动时,我们的 spring jms 应用程序突然停止工作。没有代码改变。

这是错误消息:

javax.xml.bind.MarshalException
 - with linked exception:
[com.sun.istack.SAXException2: unable to marshal type "java.lang.String" as an element because it is missing an @XmlRootElement annotation]
        at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:318)
        at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:244)
        at ca.mycompany.middleware.data.serializer.JAXBSerializer.serialize(JAXBSerializer.java:30)

...

 Caused by: com.sun.istack.SAXException2: unable to marshal type "java.lang.String" as an element because it is missing an @XmlRootElement annotation
        at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:248)
        at com.sun.xml.bind.v2.runtime.LeafBeanInfoImpl.serializeRoot(LeafBeanInfoImpl.java:137)
        at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:494)
        at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:315)
        ... 15 more

我不明白问题是什么?

更新:

我发现了问题。当我开始单步执行代码时,我发现问题的真正根源是我的应用程序被此异常阻止:

javax.net.ssl.SSLException:无法识别的 SSL 消息,明文连接?

我有一个变通方法,但我试图弄清楚是什么改变了阻止我过去调用网络服务的方式。

4

1 回答 1

0

那么,你的java版本升级了吗?似乎在您的代码的这个区域:

at ca.mycompany.middleware.data.serializer.JAXBSerializer.serialize(JAXBSerializer.java:30)

您正在尝试对字符串进行 JAXB 序列化。这是不允许的。如果这是旧版本中的错误,我不会感到惊讶。

于 2013-08-24T20:27:44.047 回答