JMS消息,无法封送类型“0”;“java.lang.String”;作为元素,因为它缺少@XmlRootElement注释
我突然遇到了一个无法解释的问题。在生产中,RedHat Web服务器操作系统被更新/修补,当它重新启动时,我们的spring jms应用程序突然停止工作。没有代码更改 以下是错误消息: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
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消息,纯文本连接?