JMS消息,无法封送类型“0”;“java.lang.String”;作为元素,因为它缺少@XmlRootElement注释

JMS消息,无法封送类型“0”;“java.lang.String”;作为元素,因为它缺少@XmlRootElement注释,java,jaxb,sax,Java,Jaxb,Sax,我突然遇到了一个无法解释的问题。在生产中,RedHat Web服务器操作系统被更新/修补,当它重新启动时,我们的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 i

我突然遇到了一个无法解释的问题。在生产中,RedHat Web服务器操作系统被更新/修补,当它重新启动时,我们的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消息,纯文本连接


我有一个解决办法,但我正在试图找出是什么改变了我过去调用Web服务的方式。

那么,您的java版本升级了吗? 在代码的这一部分中:

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


您正在尝试JAXB序列化字符串。这是不允许的。如果它是旧版本中的一个bug,我不会感到惊讶。

您从哪个版本的RH升级?到/从?哪些软件包已升级?特别是与您使用的堆栈相关的包(jboss、tomcat、libjava、JDK)。我发现这是真正的例外:javax.net.ssl.SSLException:无法识别的ssl消息,纯文本连接?