我有一个无法解释的问题,刚刚出现。在生产中,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 消息,明文连接?
我有一个变通方法,但我试图弄清楚是什么改变了阻止我过去调用网络服务的方式。