我无法解析hibernate.cfg.xml和geting
hashed_pw='your-sercret-hash-S0SKVKUuFfUfrY3UhhUC3J'
passwd = hudson.util.Secret.decrypt(hashed_pw)
println(passwd)
它可以是xml解析器,它接口就像它使用stax引擎盖。我们正在休眠5.2.3。我们的hibernate.cfg.xml文件的标题是正确的我尝试了两个Xsd
Caused by: javax.xml.bind.UnmarshalException: unexpected element (uri:"http://www.hibernate.org/xsd/orm/cfg", local:"hibernate-configuration"). Expected elements are <{}hibernate-configuration>
和DTD
<?xml version="1.0" encoding='utf-8'?>
<hibernate-configuration
xsi:schemaLocation="http://www.hibernate.org/xsd/hibernate-configuration hibernate-configuration-4.0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<session-factory>
两者都有相同的错误。我必须与解析器有关。
更新 我已修复问题代码未正确显示。我确信XML是有效的XML。
更新2
我开始得到一些线索。它可以通过运行代码作为junit powermock测试来引起。特别是 <?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
类读取文件,由MockClassLoader加载。
更新3 他们通过稍微驯服powermock来解决它here
com.sun.xml.internal.stream.XMLEventReaderImpl
现在我有不同的错误希望我走在正确的轨道上。
@PowerMockIgnore({ "javax.xml.*", "org.xml.sax.*" })
通过向
添加其他类来解决问题herejava.lang.LinkageError: loader constraint violation: when resolving overridden method "com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(Lorg/w3c/dom/Node;)Ljava/lang/Object;" the class loader (instance of org/powermock/core/classloader/MockClassLoader) of the current class, com/sun/xml/internal/bind/v2/runtime/unmarshaller/UnmarshallerImpl, and its superclass loader (instance of <bootloader>), have different Class objects for the type org/w3c/dom/Node used in the signature
答案 0 :(得分:0)
您可以尝试将此模板更改并用于hibernate.cfg.xml文件:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="domain">
<property name="hibernate.show_sql">false</property>
<mapping package="com.example.dao.entity"/>
<!-- etc -->
</session-factory>
</hibernate-configuration>
答案 1 :(得分:0)
此错误是在 Hibernate 5.4.4 中使用 java version "14.0.1"
时引发的。
意外元素(uri:“http://www.hibernate.org/xsd/orm/cfg”,本地:“hibernate-configuration”)。预期元素为 <{}hibernate-configuration>
一个简单的降级到 java 8
解决它。
如 documentation 中提到的 Hibernate 最高 5.4.4。支持 Java 8
或 11