Меню

Ejb exception ошибка еаист

IndoKnight, что идеально завернуть вам дал как Exception семантика в рамках Java EE.. работа.

вот две единственные строки «bean provider», то есть вы и я, должны знать об исключениях в Java EE:

ваш bean полностью свободен для восстановления от любого типа исключения или ошибки, как вы считаете нужным, в отношении других ограничений, под которыми может находиться bean. Если вы оправились от исключения, то поздравляю-проблем нет anymore =)

соответствующим ограничением может быть, например, то, что» корпоративные компоненты, использующие демаркацию транзакций, управляемых контейнером, не должны использовать методы управления транзакциями, которые мешают границам демаркации транзакций контейнера», чтобы процитировать Java EE 7 учебник 48-2 страницы (вы хотите программно установить откат управляемой транзакции контейнера, используйте метод ejbcontext.setRollbackOnly()).

Вам также не рекомендуется, как и в любом типе приложения Java, обрабатывать Throwable или Error брошенный с очень низкого уровня. RuntimeException теоретически считается в этой категории, поскольку он так лихо сигнализирует об «ошибке разработчика», которая похожа на» совершенно неожиданную», но мы все знаем, что это не так.

в основном, неожиданное исключение (исключения времени выполнения + другое дерьмо, которое мы предполагаем, происходит от кого-то другого) предполагается, что ваш код не может быть обработан и должен обрабатываться сервером. Сервер должен обрабатывать исключение» unhandleable» (посмотреть спецификация EJB 3.2, стр. 204), напечатав что-то об этом в журнале (я перейду к деталям немного позже!).

более конкретно..

вы спросили (И вот во что я верю или не верны):

все исключения приложений описанное выше должно быть брошено
непосредственно EJB клиенту?

да. и транзакция (если она активна) не должна откатываться, если вы явно не указываете, что она должна использовать атрибут отката ApplicationException. Исключение Java-кода-это очень естественная вещь. Java EE не имеет намерения разрушать эту модель программирования. Так что вперед, бросьте проверенные исключения, как вам нравится, заставляя клиентов пытаться поймать те или отметьте исключения среды выполнения как исключения приложения и бросьте их тоже. Счастливого броска!

если системные исключения обернуты внутри javax.EJB-компонента.EJBException перед
бросая клиенту, затем javax.EJB-компонента.EJBException считаются
Системное Исключение?

да, но не по той причине, которую вы предоставляете. Чтобы быть ясным, нет типа SystemException. Это просто причудливая формулировка для описания таких исключений, которые большинство бобов там не могло произойти, и скорее всего, они происходят из контейнера EJB. Ваш код определенно не должен вызывать EJBException. Это, вероятно, только помешало бы уму сервера. Также вы не можете аннотировать исключение как @ApplicationException так как вы не владеете кодом, он предоставляется API Java EE. Вы можете расширить EJBException, но не имеет смысла маскировать ваш код как часть кодовой базы сервера. Наиболее главное, с EJBException расширяет RuntimeException, я думаю, что безопасно классифицировать EJBException как «исключение системного уровня».

Берегись Дьявола

некоторые пульт ДУ клиенты получат исключения remoteexception вместо исключения EJBException.

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

держу пари, вы думаете, что a подавленные исключением всегда извлекается с помощью Throwable.getCause(). Обратите внимание, что спецификация EJB 3.2 не говорит, что контейнер должен или должен щадить ссылку на подавленную причину. Фактически, единственное, что должен сделать контейнер, это зарегистрировать исключение. Тогда, если Боба нет одноэлементный экземпляр bean должен быть отброшен и больше никогда не использоваться. Кроме того, если компонент является управляемым сообщением компонентом, только тогда требуется «обернуть»исходное исключение. Как «обернуть» исключение не указано. Супер портативный прохладный код, вероятно, следует взглянуть на подобное.getCause() метод и Throwable.getSuppressed () тоже. Не ожидайте, что в вашем коде обработки всегда будет найдено исходное исключение.

асинхронные методы (методы публичного сеанса bean аннотированы @асинхронные), который возвращает void, не может распространять исключение на своего клиента. Таким образом, они не должны объявлять или исключения приложений (посмотреть спецификация EJB 3.2 страница 82). Обратите внимание, что при вызове асинхронного метода сервер может не предоставить потоковые ресурсы для обслуживания вашего запроса, и если это так, он должен бросить.. EJBException (страница 48)!

Вопросы: реестр контрактов

Ошибка при подписании сведения о БО

Здравствуйте! Кто-нибудь знает, что делать с ошибкой при подписании сформированных сведений о БО (реестр контрактов, регистрация нового ГК)?
java.lang.RuntimeException: javax.ejb.EJBTransactionRolledbackException: nested exception is: javax.ejb.EJBException: See nested exception; nested exception is: java.lang.RuntimeException: Error occurred while validating print form [printFormContentId = 281983921]. Ошибка при валидации по схеме.


IrinaI72
Новичок
 
Сообщений: 2
Зарегистрирован: 08 апр 2019, 10:36
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Роль: Заказчик
Пункты репутации: 0

Re: Вопросы: реестр контрактов

Сообщение Da10 » 08 апр 2019, 13:30

Коллеги, такой вопрос. Если внести изменения в карточку контракта по причине технической ошибки (неверно указан бюджет) через функционал «внести изменения» -> «исправление сведений», это является нарушением, если уже больше 5 дней с момента заключения прошло или нет? При сохранении, вроде не ругается.

«Ребята! У нас две проблемы: Минобороны и пуговица. Мы пуговицу найти можем? Чисто теоретически? Можем. А с Минобороны… ничего. Вывод: ищем пуговицу.»

Аватар пользователя
Da10
Завсегдатай
 
Сообщений: 851
Зарегистрирован: 06 дек 2018, 10:15
Благодарил (а): 7 раз.
Поблагодарили: 23 раз.
Роль: Заказчик
Пункты репутации: 21

Re: Вопросы: реестр контрактов

Сообщение kir_dfg » 08 апр 2019, 13:32

Da10 писал(а):Коллеги, такой вопрос. Если внести изменения в карточку контракта по причине технической ошибки (неверно указан бюджет) через функционал «внести изменения» -> «исправление сведений», это является нарушением, если уже больше 5 дней с момента заключения прошло или нет? При сохранении, вроде не ругается.

Нет, не является. Наоборот, устраняете нарушение. Если что, можно отбиться всегда.
Главное, чтобы это было именно исправление, а не внесение изменений в контракт.

Машины времени есть у каждого. Те, что переносят в прошлое, зовутся воспоминаниями, а те, что уносят в будущее — мечтами ©


kir_dfg
Профессор
 
Сообщений: 12112
Зарегистрирован: 19 дек 2016, 11:34
Откуда: Юпитер-2
Благодарил (а): 173 раз.
Поблагодарили: 1534 раз.
Роль: Заказчик
Пункты репутации: 635

Re: Вопросы: реестр контрактов

Сообщение Da10 » 08 апр 2019, 13:40

kir_dfg писал(а):

Da10 писал(а):Коллеги, такой вопрос. Если внести изменения в карточку контракта по причине технической ошибки (неверно указан бюджет) через функционал «внести изменения» -> «исправление сведений», это является нарушением, если уже больше 5 дней с момента заключения прошло или нет? При сохранении, вроде не ругается.

Нет, не является. Наоборот, устраняете нарушение. Если что, можно отбиться всегда.
Главное, чтобы это было именно исправление, а не внесение изменений в контракт.

Спасибо. Будем устранять)

«Ребята! У нас две проблемы: Минобороны и пуговица. Мы пуговицу найти можем? Чисто теоретически? Можем. А с Минобороны… ничего. Вывод: ищем пуговицу.»

Аватар пользователя
Da10
Завсегдатай
 
Сообщений: 851
Зарегистрирован: 06 дек 2018, 10:15
Благодарил (а): 7 раз.
Поблагодарили: 23 раз.
Роль: Заказчик
Пункты репутации: 21

Re: Ошибка при подписании сведения о БО

Сообщение kir_dfg » 08 апр 2019, 14:19

IrinaI72 писал(а):Здравствуйте! Кто-нибудь знает, что делать с ошибкой при подписании сформированных сведений о БО (реестр контрактов, регистрация нового ГК)?
java.lang.RuntimeException: javax.ejb.EJBTransactionRolledbackException: nested exception is: javax.ejb.EJBException: See nested exception; nested exception is: java.lang.RuntimeException: Error occurred while validating print form [printFormContentId = 281983921]. Ошибка при валидации по схеме.

Здравствуйте. Давно вылезло? Если сегодня, то только ждать.
А так посмотрите, нет ли где длинных строк, пустых полей и прочего.

Машины времени есть у каждого. Те, что переносят в прошлое, зовутся воспоминаниями, а те, что уносят в будущее — мечтами ©


kir_dfg
Профессор
 
Сообщений: 12112
Зарегистрирован: 19 дек 2016, 11:34
Откуда: Юпитер-2
Благодарил (а): 173 раз.
Поблагодарили: 1534 раз.
Роль: Заказчик
Пункты репутации: 635

Re: Обсуждение: обсуждение техподдержки и крики души

Сообщение IrinaI72 » 08 апр 2019, 14:54

Отвечая на свой же вопрос, вдруг кому-то пригодится.. Если при подписании сформированных сведений о БО появляется ошибка на всю страницу java.lang. и т.д., вернитесь в Информацию о поставщике и проставьте там появившиеся после обновления поля «Наименование объекта почтовой связи» и «Номер ячейки».


IrinaI72
Новичок
 
Сообщений: 2
Зарегистрирован: 08 апр 2019, 10:36
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Роль: Заказчик
Пункты репутации: 0

Re: Вопросы: реестр контрактов

Сообщение annmok » 08 апр 2019, 17:09

коллеги, добрый день.

ошибка perform publication contract with message, затем после нажатия на кнопку ок- internal server error. . И все, висит глухо, крутится, пока руками не наберёшь в строке поиска адрес заново. Другие контракты-не знаю, у меня не было пока шанса попробовать, не заключали больше ничего. Сейчас доеду до работы и попробую сформировать контракт вручную..

воюю с техподдержкой, ошибка сохраняется, была надежды что новый контракт смогу опубликовать..как бы не так:((( Подскажите,можт я, курица, делаю что-то неправильно..
Нажала подписать и разместить в модуле «заключение контрактов». Контракт ушел в ЕИС.
Потом зашла в Реестр контрактов,нажала сформировать сведения о контракте,выбрала нужную закупку, заполнила все и отправляю на размещение и контроль… :du_ma_et: :du_ma_et: :du_ma_et: по логике все верно… но блин ошибка,хоть ты убейся.
Количество символов в наименовании контракта небольшое. перевыбирать извещение по рекомендации ТП пробовала… Ставить гарантии по контракту :sh_ok: :sh_ok: :sh_ok: (продукты!) пробовала.. а воз и ныне там. Сегодня 08 апреля.. контракт от 11 марта… каждый день начинаю утро с письма в ТП…

Аватар пользователя
annmok
Завсегдатай
 
Сообщений: 245
Зарегистрирован: 17 мар 2016, 11:22
Благодарил (а): 87 раз.
Поблагодарили: 10 раз.
Роль: Заказчик
Пункты репутации: 11

Re: Вопросы: реестр контрактов

Сообщение ДиМкА » 08 апр 2019, 17:38

annmok писал(а):воюю с техподдержкой, ошибка сохраняется, была надежды что новый контракт смогу опубликовать..как бы не так:((( Подскажите,можт я, курица, делаю что-то неправильно..Нажала подписать и разместить в модуле «заключение контрактов». Контракт ушел в ЕИС.Потом зашла в Реестр контрактов,нажала сформировать сведения о контракте,выбрала нужную закупку, заполнила все и отправляю на размещение и контроль… по логике все верно… но блин ошибка,хоть ты убейся.Количество символов в наименовании контракта небольшое. перевыбирать извещение по рекомендации ТП пробовала… Ставить гарантии по контракту (продукты!) пробовала.. а воз и ныне там. Сегодня 08 апреля.. контракт от 11 марта… каждый день начинаю утро с письма в ТП…

Сегодня такая же ошибка

ДиМкА писал(а):После обновления вернулась ошибка: при публикации контракта «Произошла ошибка performPublicationContractWithMessage»/»Internal Server Error».

Плагин переустановил, перезагрузился — не уходит.
Причем на разных машинах — одно и тоже.

Обсуждение: обсуждение техподдержки и крики души

post454648.html#p454648

Аватар пользователя
ДиМкА
Профессор
 
Сообщений: 7933
Зарегистрирован: 01 ноя 2014, 00:31
Благодарил (а): 13 раз.
Поблагодарили: 1558 раз.
Роль: Заказчик
Пункты репутации: 589


Re: Вопросы: реестр контрактов

Сообщение ДиМкА » 09 апр 2019, 09:19

Сегодня (после проведения регламентных работ) ошибка вроде ушла, направил на контроль контракт.

ДиМкА писал(а):После обновления вернулась ошибка: при публикации контракта «Произошла ошибка performPublicationContractWithMessage»/»Internal Server Error».
Плагин переустановил, перезагрузился — не уходит.
Причем на разных машинах — одно и тоже.

Аватар пользователя
ДиМкА
Профессор
 
Сообщений: 7933
Зарегистрирован: 01 ноя 2014, 00:31
Благодарил (а): 13 раз.
Поблагодарили: 1558 раз.
Роль: Заказчик
Пункты репутации: 589


Вернуться в Работа заказчика

Кто сейчас на форуме

Зарегистрированные пользователи: ASGOR, Google [Bot]

  • Вопросы: реестр контрактов

    Ошибка при подписании сведения о БО

    IrinaI72 » 08 апр 2019, 13:04

    Re: Вопросы: реестр контрактов

    Da10 » 08 апр 2019, 13:30

    Re: Вопросы: реестр контрактов

    kir_dfg » 08 апр 2019, 13:32

    Re: Вопросы: реестр контрактов

    Da10 » 08 апр 2019, 13:40

    Re: Ошибка при подписании сведения о БО

    kir_dfg » 08 апр 2019, 14:19

    Re: Обсуждение: обсуждение техподдержки и крики души

    IrinaI72 » 08 апр 2019, 14:54

    Re: Вопросы: реестр контрактов

    annmok » 08 апр 2019, 17:09

    коллеги, добрый день.

    воюю с техподдержкой, ошибка сохраняется, была надежды что новый контракт смогу опубликовать..как бы не так:((( Подскажите,можт я, курица, делаю что-то неправильно..
    Нажала подписать и разместить в модуле «заключение контрактов». Контракт ушел в ЕИС.
    Потом зашла в Реестр контрактов,нажала сформировать сведения о контракте,выбрала нужную закупку, заполнила все и отправляю на размещение и контроль. по логике все верно. но блин ошибка,хоть ты убейся.
    Количество символов в наименовании контракта небольшое. перевыбирать извещение по рекомендации ТП пробовала. Ставить гарантии по контракту (продукты!) пробовала.. а воз и ныне там. Сегодня 08 апреля.. контракт от 11 марта. каждый день начинаю утро с письма в ТП.

    Re: Вопросы: реестр контрактов

    ДиМкА » 08 апр 2019, 17:38

    ДиМкА писал(а): После обновления вернулась ошибка: при публикации контракта «Произошла ошибка performPublicationContractWithMessage»/»Internal Server Error».

    Плагин переустановил, перезагрузился — не уходит.
    Причем на разных машинах — одно и тоже.

    Re: Ошибка в реестре контрактов

    Прохожий зак » 08 апр 2019, 21:53

    Re: Вопросы: реестр контрактов

    ДиМкА » 09 апр 2019, 09:19

    Источник

    EJB Exception (Doc ID 2402366.1)

    Last updated on NOVEMBER 22, 2022

    Applies to:

    CCB — Oracle Utilities Customer Care and Billing
    OUAF/FW — Oracle Utilities Framework

    On : 2.5.0.2.0 version, ENV — Environment

    When running the CCB app in native mode in the Weblogic Server, there are some issues when installing the ear files.
    he ear files (SPLService, SPLWeb, Webservices) are installed correctly, their state is active, but there are «EJB Exception» Errors

    ERROR
    ————————
    <> com.splwg.shared.common.LoggedException: Failed READ due to EJBException

    Caused By: javax.ejb.EJBException: EJB Exception: ; nested exception is:
    com.oracle.pitchfork.interfaces.LifecycleCallbackException: Failure to invoke protected void com.splwg.ejb.service.impl.ServiceBean.initializeContext() on bean class class com.splwg.ejb.service.impl.SPLServiceBean_8o7vtd_Impl with args: null

    Caused By: com.oracle.pitchfork.interfaces.LifecycleCallbackException: Failure to invoke protected void com.splwg.ejb.service.impl.ServiceBean.initializeContext() on bean class class com.splwg.ejb.service.impl.SPLServiceBean_8o7vtd_Impl with args: null

    Caused By: java.lang.reflect.InvocationTargetException

    Caused By: java.lang.ExceptionInInitializerError

    Caused By: java.lang.NullPointerException

    Could not start flush listener for WebservicesCacheFlusher. Please check JMS configuration.
    javax.naming.NameNotFoundException: While trying to lookup ‘jms.OUFlushConnectionFactory’ didn’t find subcontext ‘jms’. Resolved »; remaining name ‘jms/OUFlushConnectionFactory’

    821 [[ACTIVE] ExecuteThread: ‘0’ for queue: ‘weblogic.kernel.Default (self-tuning)’] ERROR (common.cache.CacheFlushManager) Flush listener for WebservicesCacheFlusher could not be started
    com.splwg.shared.common.LoggedException: (805522049) Could not start flush listener for WebservicesCacheFlusher. Please check JMS configuration.

    What is the impact of there errors?
    В

    Solution

    To view full details, sign in with your My Oracle Support account.

    Don’t have a My Oracle Support account? Click to get started!

    In this Document

    My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.

    Oracle offers a comprehensive and fully integrated stack of cloud applications and platform services. For more information about Oracle (NYSE:ORCL), visit oracle.com. пїЅ Oracle | Contact and Chat | Support | Communities | Connect with us | | | | Legal Notices | Terms of Use

    Источник

    EJB3.1 Системные исключения против javax.EJB-компонента.EJBException

    просто немного фона на EJB3.1 исключения, прежде чем поднимать мой вопрос —

    исключения приложений состоят из

    пользовательские checked или unchecked исключения, которые имеют @Исключение applicationexception аннотации

    все проверенные исключения

    java.ленг.Исключение & это исключения подкласса
    кроме java.РМО.RemoteException & это исключения подкласса

    Системные исключения составляют

    java.РМО.RemoteException и это исключения подкласса

    все неотмеченные исключения

    java.ленг.RuntimeException и его подклассов исключений
    Ява.ленг.Ошибка и это исключения подкласса

    Ниже приведено заявление, которое я прочитал в этом книги

    в исключениях системы EJB не исключено клиентом, когда встречаются такие исключения не передаются клиенту как есть, но обертываются в javax.EJB-компонента.EJBException.

    1. все исключения приложений, описанные выше, должны быть брошены непосредственно EJB клиенту?
    2. если системные исключения обернуты внутри javax.EJB-компонента.EJBException перед броском клиенту, то является javax.EJB-компонента.EJBException рассматривается как система Исключение?

    2 ответов

    1. да, более или менее так они работают. Для получения дополнительной информации о поведении EJB ознакомьтесь со следующим сообщением в блоге:ссылке

    исключение применения будет брошено когда ошибка бизнес-логики, в отличие от системной ошибки.

    существует важное различие: исключения приложений не автоматически вызвать откат транзакции. У клиента возможность восстановления после создания исключения приложения.

    исключения приложений отправляются клиенту без переупаковки как исключение EJBException. Поэтому их можно использовать для проверки отчетов ошибки или проблемы бизнес-логики, и они дойдут до клиента.

    1. javax.ejb.EJBException выходит RuntimeException Так что да, это системное исключение.

    общий сценарий, связанный с этим: если у вас есть непойманные RuntimeException в коде приложения будет откат. Это довольно полезное поведение по умолчанию.

    IndoKnight, что идеально завернуть вам дал как Exception семантика в рамках Java EE.. работа.

    вот две единственные строки «bean provider», то есть вы и я, должны знать об исключениях в Java EE:

    ваш bean полностью свободен для восстановления от любого типа исключения или ошибки, как вы считаете нужным, в отношении других ограничений, под которыми может находиться bean. Если вы оправились от исключения, то поздравляю-проблем нет anymore =)

    соответствующим ограничением может быть, например, то, что» корпоративные компоненты, использующие демаркацию транзакций, управляемых контейнером, не должны использовать методы управления транзакциями, которые мешают границам демаркации транзакций контейнера», чтобы процитировать Java EE 7 учебник 48-2 страницы (вы хотите программно установить откат управляемой транзакции контейнера, используйте метод ejbcontext.setRollbackOnly()).

    Вам также не рекомендуется, как и в любом типе приложения Java, обрабатывать Throwable или Error брошенный с очень низкого уровня. RuntimeException теоретически считается в этой категории, поскольку он так лихо сигнализирует об «ошибке разработчика», которая похожа на» совершенно неожиданную», но мы все знаем, что это не так.

    в основном, неожиданное исключение (исключения времени выполнения + другое дерьмо, которое мы предполагаем, происходит от кого-то другого) предполагается, что ваш код не может быть обработан и должен обрабатываться сервером. Сервер должен обрабатывать исключение» unhandleable» (посмотреть спецификация EJB 3.2, стр. 204), напечатав что-то об этом в журнале (я перейду к деталям немного позже!).

    более конкретно..

    вы спросили (И вот во что я верю или не верны):

    все исключения приложений описанное выше должно быть брошено непосредственно EJB клиенту?

    да. и транзакция (если она активна) не должна откатываться, если вы явно не указываете, что она должна использовать атрибут отката ApplicationException . Исключение Java-кода-это очень естественная вещь. Java EE не имеет намерения разрушать эту модель программирования. Так что вперед, бросьте проверенные исключения, как вам нравится, заставляя клиентов пытаться поймать те или отметьте исключения среды выполнения как исключения приложения и бросьте их тоже. Счастливого броска!

    если системные исключения обернуты внутри javax.EJB-компонента.EJBException перед бросая клиенту, затем javax.EJB-компонента.EJBException считаются Системное Исключение?

    да, но не по той причине, которую вы предоставляете. Чтобы быть ясным, нет типа SystemException. Это просто причудливая формулировка для описания таких исключений, которые большинство бобов там не могло произойти, и скорее всего, они происходят из контейнера EJB. Ваш код определенно не должен вызывать EJBException. Это, вероятно, только помешало бы уму сервера. Также вы не можете аннотировать исключение как @ApplicationException так как вы не владеете кодом, он предоставляется API Java EE. Вы можете расширить EJBException, но не имеет смысла маскировать ваш код как часть кодовой базы сервера. Наиболее главное, с EJBException расширяет RuntimeException, я думаю, что безопасно классифицировать EJBException как «исключение системного уровня».

    Берегись Дьявола

    некоторые пульт ДУ клиенты получат исключения remoteexception вместо исключения EJBException.

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

    держу пари, вы думаете, что a подавленные исключением всегда извлекается с помощью Throwable.getCause(). Обратите внимание, что спецификация EJB 3.2 не говорит, что контейнер должен или должен щадить ссылку на подавленную причину. Фактически, единственное, что должен сделать контейнер, это зарегистрировать исключение. Тогда, если Боба нет одноэлементный экземпляр bean должен быть отброшен и больше никогда не использоваться. Кроме того, если компонент является управляемым сообщением компонентом, только тогда требуется «обернуть»исходное исключение. Как «обернуть» исключение не указано. Супер портативный прохладный код, вероятно, следует взглянуть на подобное.getCause() метод и Throwable.getSuppressed () тоже. Не ожидайте, что в вашем коде обработки всегда будет найдено исходное исключение.

    асинхронные методы (методы публичного сеанса bean аннотированы @асинхронные), который возвращает void, не может распространять исключение на своего клиента. Таким образом, они не должны объявлять или исключения приложений (посмотреть спецификация EJB 3.2 страница 82). Обратите внимание, что при вызове асинхронного метода сервер может не предоставить потоковые ресурсы для обслуживания вашего запроса, и если это так, он должен бросить.. EJBException (страница 48)!

    Источник

    Уважаемые заказчики! В связи с обновлениями ЕИС на версию 9.3 существует ошибки интеграции извещений

    Уважаемые заказчики! В связи с обновлениями Единой информационной системы в сфере закупок РФ (далее – ЕИС) на версию 9.3 существует ошибки интеграции извещений:

    Извещение. See nested exception; nested exception is: java.lang.ClassCastException
    Некорректные данные. IDE. See nested exception; nested exception is: java.lang.ClassCastException: ru.lanit.fz44.ejb.service.priz.dto.PrizKtruCharacteristicValueDto incompatible with ru.lanit.fz44.ejb.facade.ktru.dto.CharacteristicValueDto javax.ejb.EJBException: See nested exception; nested exception is: java.lang.ClassCastException: ru.lanit.fz44.ejb.service.priz.dto.PrizKtruCharacteristicValueDto incompatible with ru.lanit.fz44.ejb.facade.ktru.dto.CharacteristicValueDto java.lang.ClassCastException: ru.lanit.fz44.ejb.service.priz.dto.PrizKtruCharacteristicValueDto incompatible with ru.lanit.fz44.ejb.facade.ktru.dto.CharacteristicValueDto at ru.lanit.fz44.ejb.facade.priz.integration.impl.LotPositionTransformerBean.buildSelectedKtruCharacteristicValueFromRef(LotPositionTransformerBean.java:220) at ru.lanit.fz44.ejb.facade.priz.integration.impl.LotPositionTransformerBean.buildKtruCharacteristicFromPpg(LotPositionTransformerBean.java:173) at ru.lanit.fz44.ejb.facade.priz.integration.impl.LotPositionTransformerBean.mapKtru(LotPositionTransformerBean.java:137) at ru.lanit.fz44.ejb.facade.priz.integration.impl.LotPositionTransformerBean.transform(LotPositionTransformerBean.java:99) at sun.reflect.GeneratedMethodAccessor3503.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at com.ibm.ejs.container.EJSContainer.invokeProceed(EJSContainer.java:5882) at com.ibm.ejs.container.interceptors.InvocationContextImpl.proceed(InvocationContextImpl.java:586) at ru.lanit.monitoring.monitors.aop.MonitoredOperationInterceptor.monitorAroundMethod(MonitoredOperationInterceptor.java:62) at sun.reflect.GeneratedMethodAccessor1047.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at com.ibm.ejs.container.interceptors.InterceptorProxy.invokeInterceptor(InterceptorProxy.java:

    В настоящее время службой технической поддержки ГИС направлена задача на исправление в ЕИС.

    (ПРИЗ_АК_0000_0632) В таблице по лекарственным препаратам содержатся строки, в которых выбраны лекарственные формы и дозировки, не соответствующие указанному значению МНН.
    НАТРИЯ ХЛОРИД:
    НАТРИЯ ХЛОРИД
    НАТРИЯ ХЛОРИД:
    НАТРИЯ ХЛОРИД

    До момента исправления ошибок в целях соблюдения сроков размещения извещений необходимо:

    1. Создать проект извещения в ГИС «Госзакупки ЯО».
    2. Направить на размещение – получить текст ошибки ЕИС (один из вышеуказанных).
    3. Разместить извещение напрямую в ЕИС.
    4. Обратиться в службу технической поддержки ГИС «Госзакупки ЯО» с указанием номера извещения и даты размещения извещения для ручного перевода в ГИС в состояние «Опубликован». Обращаем внимание, что в службу технической поддержки необходимо обращаться своевременно в связи с осуществлением импорта протоколов закупки.

    Приносим свои извинения за доставленные неудобства.

    Источник

  • I have an entity called Medico which was created as an Entity Class from Database, hence I think the entity definition is failsafe here, nevertheless the definition is the following:

    @Entity
    @Table(name = "medico")
    @XmlRootElement
    @NamedQueries({All named queries here})
    public class Medico implements Serializable {
    private static final long serialVersionUID = 1L;
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Basic(optional = false)
        @NotNull
        @Column(name = "idMedico")
        private Integer idMedico;
        @Basic(optional = false)
        @NotNull
        @Column(name = "Identificacion")
        private int identificacion;
        @Basic(optional = false)
        @NotNull
        @Size(min = 1, max = 33)
        @Column(name = "Primer_Nombre")
        private String primerNombre;
        @Size(max = 33)
        @Column(name = "Segundo_Nombre")
        private String segundoNombre;
        @Basic(optional = false)
        @NotNull
        @Size(min = 1, max = 33)
        @Column(name = "Primer_Apellido")
        private String primerApellido;
        @Size(max = 33)
        @Column(name = "Segundo_Apellido")
        private String segundoApellido;
        @Basic(optional = false)
        @NotNull
        @Column(name = "Telefono")
        private long telefono;
        @Column(name = "Telefono_Celular")
        private BigInteger telefonoCelular;
        @Basic(optional = false)
        @NotNull
        @Size(min = 1, max = 33)
        @Column(name = "Direccion")
        private String direccion;
        // Constructors..
        // Getters and setters..
    }
    

    I want to create new Medico entities on MySql database, and this is how I am doing so:

    @ManagedBean
    @ViewScoped
    public class ConsultaMedicos implements Serializable {
    // Variables Definition ..
    @EJB
    private DoctorsFacadeLocal doctorsFacade; 
    // Constructor and other methods ..
    public String save()
        {
            try{
                doctorsFacade.save(consultedDoctor);
                FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_INFO, CREATE_SUMMARY, null);
                FacesContext.getCurrentInstance().addMessage(CREATE_SUMMARY, fm);
            }
            catch(Exception ex){
                FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR, CREATE_ERROR_SUMMARY, null);
                FacesContext.getCurrentInstance().addMessage(CREATE_ERROR_SUMMARY, fm);
                return null;
            }
            return "listaMedicos.xhtml";
        }
    ...
    }  
    

    @Local
    public interface DoctorsFacadeLocal {
    
        List<Medico> findAllDoctors();
        Medico findDoctorByIdNumber(int identificacion);
        void edit(Medico medico);
        void save(Medico medico);
    }  
    

    @Stateless
    public class DoctorsFacade implements DoctorsFacadeLocal {
    
        @PersistenceContext
        private EntityManager em;
    // Other methods.. 
        @Override
        @TransactionAttribute(TransactionAttributeType.REQUIRED)
        public void save(Medico medico)
        {
            em.persist(medico);
            em.flush();
        }
    }
    

    After I call save() from my JSF page, I get the following exception:

    javax.ejb.EJBException
        at com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:5194)
        at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:5092)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4880)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2039)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1990)
        at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:222)
        at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88)
        at $Proxy157.save(Unknown Source)
        at com.lemm.web.bean.ConsultaMedicos.save(ConsultaMedicos.java:89)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at javax.el.BeanELResolver.invokeMethod(BeanELResolver.java:737)
        at javax.el.BeanELResolver.invoke(BeanELResolver.java:467)
        at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:254)
        at com.sun.el.parser.AstValue.invoke(AstValue.java:228)
        at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
        at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
        at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
        at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
        at javax.faces.component.UICommand.broadcast(UICommand.java:315)
        at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
        at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
        at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
        at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
        at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
        at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
        at java.lang.Thread.run(Thread.java:662)
    Caused by: javax.validation.ConstraintViolationException: Bean Validation constraint(s) violated while executing Automatic Bean Validation on callback event:'prePersist'. Please refer to embedded ConstraintViolations for details.
        at org.eclipse.persistence.internal.jpa.metadata.listeners.BeanValidationListener.validateOnCallbackEvent(BeanValidationListener.java:90)
        at org.eclipse.persistence.internal.jpa.metadata.listeners.BeanValidationListener.prePersist(BeanValidationListener.java:62)
        at org.eclipse.persistence.descriptors.DescriptorEventManager.notifyListener(DescriptorEventManager.java:698)
        at org.eclipse.persistence.descriptors.DescriptorEventManager.notifyEJB30Listeners(DescriptorEventManager.java:641)
        at org.eclipse.persistence.descriptors.DescriptorEventManager.executeEvent(DescriptorEventManager.java:200)
        at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectClone(UnitOfWorkImpl.java:4216)
        at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.cloneAndRegisterNewObject(RepeatableWriteUnitOfWork.java:576)
        at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalRegisterObject(UnitOfWorkImpl.java:2883)
        at org.eclipse.persistence.internal.sessions.MergeManager.registerObjectForMergeCloneIntoWorkingCopy(MergeManager.java:932)
        at org.eclipse.persistence.internal.sessions.MergeManager.mergeChangesOfCloneIntoWorkingCopy(MergeManager.java:492)
        at org.eclipse.persistence.internal.sessions.MergeManager.mergeChanges(MergeManager.java:263)
        at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.mergeCloneWithReferences(UnitOfWorkImpl.java:3467)
        at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.mergeCloneWithReferences(RepeatableWriteUnitOfWork.java:363)
        at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.mergeCloneWithReferences(UnitOfWorkImpl.java:3427)
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.mergeInternal(EntityManagerImpl.java:452)
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.merge(EntityManagerImpl.java:429)
        at com.sun.enterprise.container.common.impl.EntityManagerWrapper.merge(EntityManagerWrapper.java:286)
        at com.lemm.ejb.facade.DoctorsFacade.save(DoctorsFacade.java:61)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1052)
        at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1124)
        at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:5367)
        at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:619)
        at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:801)
        at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:571)
        at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround(SystemInterceptorProxy.java:162)
        at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:144)
        at sun.reflect.GeneratedMethodAccessor78.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:862)
        at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:801)
        at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:371)
        at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5339)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5327)
        at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:214)
        ... 47 more
    

    What am I doing wrong? What am I missing?
    If it serves for anything heres my persistence.xml

    <persistence-unit name="lemmPU" transaction-type="JTA">
        <jta-data-source>jdbc/lemmdb</jta-data-source>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
        </properties>
    </persistence-unit>
    

    Я делаю веб-приложение с использованием Java EE, базы данных sqlserver. Я пытаюсь добавить нового клиента в базу данных с помощью entitymanager, и я получаю такое исключение. Сервер (glassfish) работает без ошибок

    [2018-11-09T13:20:33.396+0100] [glassfish 4.1] [WARNING] [AS-EJB-00056] [javax.enterprise.ejb.container] [tid: _ThreadID=32 _ThreadName=http-listener-1(5)] [timeMillis: 1541766033396] [levelValue: 900] [[
      A system exception occurred during an invocation on EJB KontoBean, method: public void rental.KontoBean.addNewClient(rental.DaneLogowaniaEntity,rental.DaneKlientEntity,rental.KlientEntity)]]
    
    [2018-11-09T13:20:33.397+0100] [glassfish 4.1] [WARNING] [] [javax.enterprise.ejb.container] [tid: _ThreadID=32 _ThreadName=http-listener-1(5)] [timeMillis: 1541766033397] [levelValue: 900] [[
    
    javax.ejb.EJBException
        at com.sun.ejb.containers.EJBContainerTransactionManager.processSystemException(EJBContainerTransactionManager.java:752)
        at com.sun.ejb.containers.EJBContainerTransactionManager.completeNewTx(EJBContainerTransactionManager.java:702)
        at com.sun.ejb.containers.EJBContainerTransactionManager.postInvokeTx(EJBContainerTransactionManager.java:507)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4566)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2074)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2044)
        at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:220)
        at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88)
        at com.sun.proxy.$Proxy212.addNewClient(Unknown Source)
        at rental.__EJB31_Generated__KontoBean__Intf____Bean__.addNewClient(Unknown Source)
        at rental.KontoNamed.addNewKlientEntity(KontoNamed.java:54)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.sun.el.parser.AstValue.invoke(AstValue.java:289)
        at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304)
        at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
        at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
        at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
        at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
        at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
        at javax.faces.component.UICommand.broadcast(UICommand.java:315)
        at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
        at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
        at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
        at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283)
        at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
        at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
        at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
        at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
        at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
        at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
        at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536)
        at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
        at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
        at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
        at java.lang.Thread.run(Thread.java:748)
    Caused by: java.lang.IllegalStateException: Unable to retrieve EntityManagerFactory for unitName null
        at com.sun.enterprise.container.common.impl.EntityManagerWrapper.init(EntityManagerWrapper.java:138)
        at com.sun.enterprise.container.common.impl.EntityManagerWrapper.doTxRequiredCheck(EntityManagerWrapper.java:158)
        at com.sun.enterprise.container.common.impl.EntityManagerWrapper.doTransactionScopedTxCheck(EntityManagerWrapper.java:151)
        at com.sun.enterprise.container.common.impl.EntityManagerWrapper.persist(EntityManagerWrapper.java:281)
        at rental.KontoBean.addNewClient(KontoBean.java:34)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1081)
        at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1153)
        at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4786)
        at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:656)
        at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
        at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:608)
        at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:64)
        at org.jboss.weld.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:52)
        at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
        at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
        at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:608)
        at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163)
        at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:140)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
        at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
        at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369)
        at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4758)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4746)
        at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:212)
        ... 50 more
    ]]
    
    [2018-11-09T13:20:33.401+0100] [glassfish 4.1] [SEVERE] [] [] [tid: _ThreadID=32 _ThreadName=Thread-9] [timeMillis: 1541766033401] [levelValue: 1000] [[
      javax.ejb.EJBException
        at com.sun.ejb.containers.EJBContainerTransactionManager.processSystemException(EJBContainerTransactionManager.java:752)
        at com.sun.ejb.containers.EJBContainerTransactionManager.completeNewTx(EJBContainerTransactionManager.java:702)
        at com.sun.ejb.containers.EJBContainerTransactionManager.postInvokeTx(EJBContainerTransactionManager.java:507)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4566)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2074)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2044)
        at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:220)
        at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88)
        at com.sun.proxy.$Proxy212.addNewClient(Unknown Source)
        at rental.__EJB31_Generated__KontoBean__Intf____Bean__.addNewClient(Unknown Source)
        at rental.KontoNamed.addNewKlientEntity(KontoNamed.java:54)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.sun.el.parser.AstValue.invoke(AstValue.java:289)
        at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304)
        at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
        at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
        at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
        at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
        at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
        at javax.faces.component.UICommand.broadcast(UICommand.java:315)
        at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
        at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
        at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
        at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283)
        at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
        at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
        at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
        at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
        at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
        at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
        at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536)
        at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
        at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
        at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
        at java.lang.Thread.run(Thread.java:748)
    Caused by: java.lang.IllegalStateException: Unable to retrieve EntityManagerFactory for unitName null
        at com.sun.enterprise.container.common.impl.EntityManagerWrapper.init(EntityManagerWrapper.java:138)
        at com.sun.enterprise.container.common.impl.EntityManagerWrapper.doTxRequiredCheck(EntityManagerWrapper.java:158)
        at com.sun.enterprise.container.common.impl.EntityManagerWrapper.doTransactionScopedTxCheck(EntityManagerWrapper.java:151)
        at com.sun.enterprise.container.common.impl.EntityManagerWrapper.persist(EntityManagerWrapper.java:281)
        at rental.KontoBean.addNewClient(KontoBean.java:34)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1081)
        at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1153)
        at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4786)
        at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:656)
        at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
        at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:608)
        at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:64)
        at org.jboss.weld.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:52)
        at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
        at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
        at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:608)
        at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163)
        at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:140)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
        at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
        at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369)
        at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4758)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4746)
        at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java]]
    
    [2018-11-09T13:20:33.401+0100] [glassfish 4.1] [SEVERE] [] [] [tid: _ThreadID=32 _ThreadName=Thread-9] [timeMillis: 1541766033401] [levelValue: 1000] [[
      :212)
        ... 50 more]]
    

    Мой KlientEntity.java

    package rental;
    
    import javax.persistence.*;
    
    @Entity
    @Table(name = "Klient", schema = "dbo", catalog = "Test")
    public class KlientEntity {
        private int id;
    
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column(name = "ID",nullable = false)
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        @OneToOne(cascade = CascadeType.PERSIST)
        private DaneKlientEntity daneKlientEntity;
    
        @OneToOne(cascade = CascadeType.PERSIST)
        private DaneLogowaniaEntity daneLogowaniaEntity;
    
    
    
        public DaneKlientEntity getDaneKlientEntity() {
            return daneKlientEntity;
        }
    
        public void setDaneKlientEntity(DaneKlientEntity daneKlientEntity) {
            this.daneKlientEntity = daneKlientEntity;
        }
    
        public DaneLogowaniaEntity getDaneLogowaniaEntity() {
            return daneLogowaniaEntity;
        }
    
        public void setDaneLogowaniaEntity(DaneLogowaniaEntity daneLogowaniaEntity) {
            this.daneLogowaniaEntity = daneLogowaniaEntity;
        }
    }
    

    KontoBean.java

    package rental;
    
    import javax.ejb.LocalBean;
    import javax.ejb.Stateless;
    import javax.inject.Named;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    
    @LocalBean
    @Stateless
    public class KontoBean {
    
        public KontoBean(){
    
        }
        @PersistenceContext
        EntityManager entityManager;
    
        public void addNewClient(DaneLogowaniaEntity daneLogowaniaEntity, DaneKlientEntity daneKlientEntity, KlientEntity klientEntity) {
    
            entityManager.persist(daneLogowaniaEntity);
            entityManager.persist(daneKlientEntity);
            entityManager.persist(klientEntity);
            entityManager.flush();
        }
        public void updateDaneKlientaEntity(DaneKlientEntity daneKlientEntity)
        {
            DaneKlientEntity entity = entityManager.find(DaneKlientEntity.class,daneKlientEntity.getId());
            entity.setEmail(daneKlientEntity.getEmail());
            entity.setImie(daneKlientEntity.getImie());
            entity.setNazwisko(daneKlientEntity.getNazwisko());
            entity.setTel(daneKlientEntity.getTel());
            entityManager.persist(entity);
        }
    
        public void updateDaneLogowaniaEntity(DaneLogowaniaEntity daneLogowaniaEntity)
        {
            DaneLogowaniaEntity daneLogowaniaEntity1 = entityManager.find(DaneLogowaniaEntity.class,daneLogowaniaEntity.getId());
        }
        public void updateKlientEntity(DaneKlientEntity daneKlientEntity, DaneLogowaniaEntity daneLogowaniaEntity)
        {
            updateDaneKlientaEntity(daneKlientEntity);
            updateDaneLogowaniaEntity(daneLogowaniaEntity);
        }
    }
    

    KontoNamed.java

    package rental;
    
    import javax.annotation.PostConstruct;
    import javax.ejb.EJB;
    import javax.inject.Named;
    import java.security.NoSuchAlgorithmException;
    
    
    @Named("kontoNamed")
    public class KontoNamed {
        private String verificationPassword;
        @EJB
        private MessageBean messageBean;
        public String getMessageBean() {return messageBean.getContent();}
        @EJB
        KontoBean kontoBean;
    
        KlientEntity klientEntity = new KlientEntity();
        DaneLogowaniaEntity daneLogowaniaEntity = new DaneLogowaniaEntity();
        DaneKlientEntity daneKlientEntity = new DaneKlientEntity();
    
        @PostConstruct
        public void init()
        {
            klientEntity = new KlientEntity();
            klientEntity.setDaneLogowaniaEntity(new DaneLogowaniaEntity());
            klientEntity.setDaneKlientEntity(new DaneKlientEntity());
        }
    
        public KlientEntity getKlientEntity(){return klientEntity;}
        public void setKlientEntity(KlientEntity klientEntity){this.klientEntity=klientEntity;}
    
        public DaneKlientEntity getDaneKlientEntity(){return daneKlientEntity;}
        public void setDaneKlientEntity(DaneKlientEntity daneKlientEntity){this.daneKlientEntity=daneKlientEntity;}
    
        public DaneLogowaniaEntity getDaneLogowaniaEntity(){return daneLogowaniaEntity;}
        public void setDaneLogowaniaEntity(DaneLogowaniaEntity daneLogowaniaEntity){this.daneLogowaniaEntity=daneLogowaniaEntity;}
        public void addNewKlientEntity() {
                klientEntity.setDaneKlientEntity(daneKlientEntity);
                klientEntity.setDaneLogowaniaEntity(daneLogowaniaEntity);
                try {
                    kontoBean.addNewClient(daneLogowaniaEntity, daneKlientEntity, klientEntity);
                } catch (Exception e) {
                    e.printStackTrace();
                    messageBean.setContent("Błąd przy dodawaniu nowego konta!");
                    return;
                }
                messageBean.setContent("Dodanie rekordu zakończone sukcesem!");
        }
        public String getVerificationPassword(){return verificationPassword;}
        public void setVerificationPassword(String verificationPassword) {
            this.verificationPassword = verificationPassword;
        }
    }
    

    Persistence.xml

    <?xml version = "1.0" encoding = "UTF-8"?>
    <persistence xmlns = "http://java.sun.com/xml/ns/persistence" version = "2.0">
    
        <persistence-unit name = "NewPersistenceUnit">
            <class>rental.AdminEntity</class>
            <class>rental.DaneKlientEntity</class>
            <class>rental.DaneLogowaniaEntity</class>
            <class>rental.KlientEntity</class>
            <class>rental.NaprawyEntity</class>
            <class>rental.PunktEntity</class>
            <class>rental.RaportyEntity</class>
            <class>rental.RowerEntity</class>
            <class>rental.WypozyczenieEntity</class>
    
            <properties>
                <property name = "eclipselink.jdbc.url" value = "jdbc:sqlserver://localhost:1433;database=Test"/>
                <property name = "eclipselink.jdbc.driver" value = "com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
                <property name = "eclipselink.jdbc.user" value = "baza"/>
                <property name = "eclipselink.jdbc.password" value = "03c8bb23"/>
    
            </properties>
        </persistence-unit>
    </persistence>
    

    Исключение отображается, когда я нажимаю кнопку добавления на веб-странице,

    Я пытаюсь запустить этот базовый код JPA/EJB:

    public static void main(String[] args){
             UserBean user = new UserBean();
             user.setId(1);
             user.setUserName("name1");
             user.setPassword("passwd1");
             em.persist(user);
      }
    

    Я получаю эту ошибку:

    javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: com.JPA.Database
    

    Любые идеи?

    Я ищу в Интернете, и причина, по которой я нашел, была:

    Это было вызвано тем, как вы создали объекты, т.е. если вы явно задали свойство ID. Исправлено удаление идентификатора.

    Но я не понял, что мне нужно изменить, чтобы заставить код работать?

    Ответ 1

    ERD

    Скажем, у вас есть два объекта Album и Photo. Альбом содержит много фотографий, поэтому он имеет отношение от одного до многих.

    Класс альбома

    @Entity
    public class Album {
        @Id
        @GeneratedValue(strategy=GenerationType.AUTO)
        Integer albumId;
    
        String albumName;
    
        @OneToMany(targetEntity=Photo.class,mappedBy="album",cascade={CascadeType.ALL},orphanRemoval=true)
        Set<Photo> photos = new HashSet<Photo>();
    }
    

    Класс фотографий

    @Entity
    public class Photo{
        @Id
        @GeneratedValue(strategy=GenerationType.AUTO)
        Integer photo_id;
    
        String photoName;
    
        @ManyToOne(targetEntity=Album.class)
        @JoinColumn(name="album_id")
        Album album;
    
    }
    

    Что нужно сделать, прежде чем продолжать или объединить, нужно установить ссылку на альбом в каждой фотографии.

            Album myAlbum = new Album();
            Photo photo1 = new Photo();
            Photo photo2 = new Photo();
    
            photo1.setAlbum(myAlbum);
            photo2.setAlbum(myAlbum);       
    

    Вот как присоединить связанный объект до того, как вы будете продолжать или сливаться.

    Ответ 2

    Ошибка возникает из-за того, что установлен идентификатор объекта. Спящий режим различает переходные и отдельные объекты, а persist работает только с переходными объектами. Если persist завершает удаление объекта (что будет связано с тем, что идентификатор установлен), он вернет ошибку «отсоединенный объект, прошедший для сохранения». Вы можете найти более подробную информацию здесь и здесь.

    Однако это применимо только в том случае, если вы указали первичный ключ, который должен быть автоматически сгенерирован: если поле настроено всегда на ручной настройку, тогда ваш код работает.

    Ответ 3

    удалить

    user.setId(1);
    

    поскольку он автоматически генерируется на БД,
    и продолжайте с помощью команды persist.

    Ответ 4

    Я получил ответ, я использовал:

    em.persist(user);
    

    Я использовал слияние вместо persist:

    em.merge(user);
    

    Но не знаю, почему упорство не сработало.: (

    Ответ 5

    если вы используете для создания стратегии id = GenerationType.AUTO в своей сущности.

    Заменяет user.setId (1) на user.setId (null), и проблема решена.

    Ответ 6

    Я знаю, что он слишком поздно и уверен, что каждый получил ответ. Но немного больше, чтобы добавить к этому: когда установлен GenerateType, persist() на объекте должен получить генерируемый идентификатор.

    Если уже установлено значение, заданное пользователем Id, hibernate рассматривает его как сохраненную запись и поэтому обрабатывается как отсоединенный.

    если id равен null — в этой ситуации исключение нулевого указателя возникает, когда тип AUTO или IDENTITY и т.д., если идентификатор не генерируется из таблицы или секировки и т.д.

    design: это происходит, когда таблица имеет свойство bean в качестве первичного ключа.
    GenerateType должен быть установлен только тогда, когда идентификатор автогенерируется.
    удалите это, и вставка должна работать с указанным пользователем идентификатором.
    (это плохой дизайн, чтобы иметь свойство, отображаемое в поле первичного ключа)

    Ответ 7

    Здесь .perist() будет только вставлять запись. Если мы используем .merge(), он проверит, существует ли какая-либо запись с текущим идентификатором. Если она существует, она обновится, иначе она будет вставлять новую запись.

    Ответ 8

    У меня была эта проблема, и она была вызвана кешем второго уровня:

    • Я сохранял объект, использующий hibernate
    • Затем я удалил строку, созданную из отдельного процесса, который не взаимодействовал с кешем второго уровня
    • Я сохранял другой объект с тем же идентификатором (мои значения идентификатора не сгенерированы автоматически)

    Следовательно, поскольку кеш не был аннулирован, hibernate предположил, что он имеет дело с отдельным экземпляром того же объекта.

    Ответ 9

    Если вы установите id в своей базе данных как первичный ключ и автоинкремент, то эта строка кода неверна:

    user.setId(1);
    

    Попробуйте следующее:

    public static void main(String[] args){
             UserBean user = new UserBean();
             user.setUserName("name1");
             user.setPassword("passwd1");
             em.persist(user);
      }
    

    Ответ 10

    Другая причина ошибки в том, что объект объекта не реализует интерфейс Serializable

    @Entity
    @Table(name = OddInstance.objectName, uniqueConstraints = @UniqueConstraint(columnNames = {"alias"}))
    @NamedQueries({
        @NamedQuery(name=OddInstance.findByAlias,
                query="from OddInstance where alias = :alias"),
        @NamedQuery(name=OddInstance.findAll,
                query="from OddInstance")
    })
    public class OddInstance implements Serializable {
        // ...
    }
    

    Ошибка EJB выглядит следующим образом:

    javax.naming.NameNotFoundException: remote not bound 
    at org.jnp.server.NamingServer.getBinding(NamingServer.java:529) 
    at org.jnp.server.NamingServer.getBinding(NamingServer.java:537) 
    at org.jnp.server.NamingServer.getObject(NamingServer.java:543) 
    at org.jnp.server.NamingServer.lookup(NamingServer.java:296) 
    at org.jnp.server.NamingServer.lookup(NamingServer.java:270) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305) 
    at sun.rmi.transport.Transport$1.run(Transport.java:159) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.rmi.transport.Transport.serviceCall(Transport.java:155) 
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:619) 
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255) 
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233) 
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142) 
    at org.jnp.server.NamingServer_Stub.lookup(Unknown Source) 
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:667) 
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627) 
    at javax.naming.InitialContext.lookup(InitialContext.java:392) 
    at junit.test.PersionServiceTest.setUpBeforeClass(PersionServiceTest.java:22) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.junit.internal.runners.BeforeAndAfterRunner.invokeMethod(BeforeAndAfterRunner.java:74) 
    at org.junit.internal.runners.BeforeAndAfterRunner.runBefores(BeforeAndAfterRunner.java:50) 
    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:33) 
    at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38) 
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) 

    Конечно, даже начинающие знают, что привязка не далека! Но где это не обязательно? Может быть проверено шаг за шагом!

    Сначала посмотрите на три файла:

    Файл удаленного интерфейса:

    package service.impl;
    import java.util.List;
    import javax.ejb.Remote;
    import javax.ejb.Stateless;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
    import service.PersionService;
    import bean.Persion;
    @Stateless
    @Remote(PersionService.class)
    public class PersoinServiceBean implements PersionService {
    	@PersistenceContext(unitName = "golden")
    	EntityManager en;
    	public void delete(Integer persionid) {
    		en.remove(en.getReference(Persion.class, persionid));
    	}
    	public Persion getPersion(Integer persionid) {
    		return en.find(Persion.class, persionid);
    	}
    	@SuppressWarnings("unchecked")
    	public List<Persion> getPersions() {
    		return en.createQuery("select * from Persion p").getResultList();
    	}
    	public void save(Persion persion) {
    		en.persist(persion);
    	}
    	public void update(Persion persion) {
    		en.merge(persion);
    	}
    }

    Файл конфигурации пула соединений: persistence.xml (в META-INF в проекте SRC)

    <?xml version="1.0" encoding="UTF-8"?>
    <persistence xmlns="http://java.sun.com/xml/ns/persistence"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
    	version="1.0">
    	<persistence-unit name="golden" transaction-type="JTA">
    		<jta-data-source>java:goldenDS</jta-data-source>
    	</persistence-unit>
    </persistence>

    Файл конфигурации базы данных соединения Jboss, здесь используется Mysql

    <?xml version="1.0" encoding="UTF-8"?>
    <datasources>
    	<local-tx-datasource>
    		<jndi-name>goldenDS</jndi-name>
    		<connection-url>
    			jdbc:mysql://localhost:3306/golden?useUnicode=true&amp;characterEncoding=utf-8
    		</connection-url>
    		<driver-class>com.mysql.jdbc.Driver</driver-class>
    		<user-name>root</user-name>
    		<password>root</password>
    		<exception-sorter-class-name>
    			org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
    		</exception-sorter-class-name>
    		<metadata>
    			<type-mapping>mySQL</type-mapping>
    		</metadata>
    	</local-tx-datasource>
    </datasources>

    1. Сначала посмотрите, подключен ли сервер к базе данных, запустите сервер и подключитесь к домашней странице. Вы можете увидеть ситуацию с соответствующим пулом ссылок из консоли JMX.

    2. Проверьте правильность удаленного интерфейса и удалите объект управления

    @PersistenceContext(unitName = "golden") EntityManager en;

    Затем проверьте, можете ли вы получить удаленный объект

    Если удаленное устройство не может быть связано или соответствующий удаленный интерфейс не может быть связано, это может быть связано с ошибкой при создании самого интерфейса или с ошибкой в ​​объекте, вызываемом внутренне классом реализации интерфейса!

    Эта ошибка вызвана тем, что вызванный объект управления не может быть создан!

    Первым выбором является ошибка в файле конфигурации сервера и неверная строка подключения. Более того, файл persistence.xml должен быть обрезан в META-INF. Это имя файла в нижнем регистре!

    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии

    А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Edeclaration ошибка загрузки библиотеки avlog4c dll
  • Edc ошибка шакман х3000