Недавно произошел сбой при отображении Hibernate с исключением из синтаксического анализатора SAX: должен быть объявлен элемент "отображение hibernate" - PullRequest
1 голос
/ 01 июля 2019

Я новичок здесь.

Моя проблема заключается в том, что изо дня в день я не могу развернуть свой проект. Я отменил все модификации, предшествующие этой проблеме, но безуспешно, но все равно выдает новое исключение.

Модели гибернации не были изменены, база данных не была изменена.

На самом деле я не знаю, что происходит.

01-Jul-2019 09: 43: 07.243 SERIOUS [main] org.apache.catalina.core.StandardContext.listenerStart Exception when sending an initialized context event to the class listener instance [com.sun.faces.config.ConfigureListener ]
java.lang.RuntimeException: com.sun.faces.mgbean.ManagedBeanCreationException: The managerTdocumentFormenter property can not be defined for the managed bean catalogosBean
in com.sun.faces.config.ConfigureListener.contextInitialized (ConfigureListener.java:292)

Caused by: com.sun.faces.mgbean.ManagedBeanCreationException: The managerTdocumentFormenter property can not be defined for the managed bean catalogosBean
in com.sun.faces.mgbean.ManagedBeanBuilder $ BakedBeanProperty.set (ManagedBeanBuilder.java:615)
in com.sun.faces.mgbean.ManagedBeanBuilder.buildBean (ManagedBeanBuilder.java:133)
in com.sun.faces.mgbean.BeanBuilder.build (BeanBuilder.java:104)
in com.sun.faces.mgbean.BeanManager.createAndPush (BeanManager.java:409)
in com.sun.faces.mgbean.BeanManager.create (BeanManager.java:269)
in com.sun.faces.mgbean.BeanManager.create (BeanManager.java:256)
in com.sun.faces.config.ConfigureListener.contextInitialized (ConfigureListener.java:255)
... 41 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with the name 'sessionFactory' defined in the ServletContext resource [/WEB-INF/classes/resources/spring/config/Hibernate.xml]: invocation of the start method failed; the nested exception is org.hibernate.InvalidMappingException: the mapping document of an invalid mapping could not be parsed
in org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1455)
in org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:519)
in org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:456)
in org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject (AbstractBeanFactory.java:294)
in org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:225)
in org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:291)
in org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:193)
in org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java:567)
in org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext.java:913)
in org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:464)
in org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext (ContextLoader.java:385)
in org.springframework.web.context.ContextLoader.initWebApplicationContext (ContextLoader.java:284)
in org.springframework.web.context.ContextLoaderListener.contextInitialized (ContextLoaderListener.java:111)
in org.apache.catalina.core.StandardContext.listenerStart (StandardContext.java:4663)
... 40 more
Caused by: org.hibernate.InvalidMappingException: The mapping document of an invalid mapping could not be parsed
in org.hibernate.cfg.Configuration.addInputStream (Configuration.java:502)

Caused by: org.xml.sax.SAXParseException; lineNumber: 5; column number: 20; The type of element "hibernate-mapping" must be declared.
in com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException (ErrorHandlerWrapper.java:203)

О бобах, упомянутых в исключении, у меня есть:

public class CatalogosBean implements java.io.Serializable {

    ...
    private transient TdocumentoParametroBo manejadorTdocumentoParamentro;
    ...
public TdocumentoParametroBo getManejadorTdocumentoParamentro() {
        return manejadorTdocumentoParamentro;
    }

    public void setManejadorTdocumentoParamentro(TdocumentoParametroBo manejadorTdocumentoParamentro) {
        this.manejadorTdocumentoParamentro = manejadorTdocumentoParamentro;
    }

1 Ответ

1 голос
/ 02 июля 2019

У нас была очень похожая проблема, но с файлом обратного проектирования Hibernate, а не с файлом отображения Hibernate.В нашем случае сам файл не был изменен с ноября 2018 года, но перестал работать в конце прошлой недели.При диагностике нашей проблемы, когда я установил некоторые точки останова в сборке, я обнаружил, что SAXParserException печатает только первую ошибку, возвращенную из регистратора ошибок, созданного анализатором XML.Как оказалось, каждый отдельный элемент XML в файле был помечен с одинаковым типом ошибки:

org.xml.sax.saxparseexception element type "hibernate-reverse-engineering" must be declared

Анализатор обнаружил 498 ошибок, даже если была напечатана только первая,

В нашем случае исправлена ​​проблема с изменением DOCTYPE в файле hibernate.reveng.xml с: <!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-reverse-engineering-3.0.dtd">

на

<!DOCTYPE hibernate-reverse-engineering SYSTEM "https://hibernate.org/dtd/hibernate-reverse-engineering-3.0.dtd" >

То есть мы перешли от использования открытого идентификатора к системному идентификатору и с http на https.

Исходная форма (общедоступная) - это то, что мы получили из предыдущего hibernate.org (jboss.org).документация (со времен Hibernate 3.2).Новым является то, что мы находим, просматривая документацию JBoss для Hibernate Reverse Engineering сегодня.Я предполагаю, что вам нужно аналогичное изменение вашего файла отображения Hibernate (Hibernate.xml или hbm.xml или любое другое имя, которое вы используете), чтобы по крайней мере использовать https вместо http и, возможно, изменить DOCTYPE на:

<!DOCTYPE hibernate-mapping SYSTEM https://hibernate.org/hibernate-mapping-3.0.dtd">

Если это не поможет, попробуйте добавить в вопрос файл Hibernate.xml (после удаления как можно большего количества конфиденциальной информации).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...