Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 31.03.2024
Сообщений: 8

Проблема с приложением Java EE на TomEE(7.1.3)

31.03.2024, 14:25. Показов 1097. Ответов 7

Студворк — интернет-сервис помощи студентам
Приветствую!
Столкнулся с проблемой по миграции Java EE приложения с weblogic на tomee.
Суть проблемы:
Есть 2 приложения: одно веб-приложение (далее app1), другое соап веб-сервис(далее app2).
app1 использует в основном STATFULL и STATLESS бины.
app2 только STATLESS.
STATLESS у обоих приложения использует одинаковый класс.
Приложения имеют как общие Entity классы, так и каждое приложение имеет свой набор Entity классов.
Оба приложения подключаются к разным БД.
При деплои app2, а потом app1. У app1 через EntityManager при поиске денных в бд выходит ошибка java.lang.NoClassDefFoundError:
Т.е. почему-то EntityManager ищет классы в приложении app2. Это я понял по логу, т.к. ищет классы именно приложения app2, в app1 этих классов нет в принципе.

Java
1
2
3
4
5
@LocalBean
@Stateless
public class DocumentService {
  @PersistenceContext(name = "EntityBean")
  private EntityManager em;
persistence.xml для app1
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
    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_2_0.xsd">
    <persistence-unit name="EntityBean" transaction-type="JTA">
        <jta-data-source>app1db</jta-data-source>
        <jar-file>z-bean.jar</jar-file>
        <shared-cache-mode>NONE</shared-cache-mode>
        <properties>
            <property name="eclipselink.jdbc.fetch-size" value="200" />
            <property name="javax.persistence.lock.timeout" value="1000" />
            <property name="eclipselink.jdbc.cache-statements" value="true" />
            <property name="eclipselink.logging.level" value="INFO" />
            <property name="eclipselink.flush-clear.cache" value="Drop"/>
            <property name="eclipselink.persistence-context.reference-mode" value="WEAK"/>
        </properties>
    </persistence-unit>
</persistence>
persistence.xml app2
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" 
             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_2_0.xsd">
  <persistence-unit name="EntityBean" transaction-type="JTA">
  <jta-data-source>app1db</jta-data-source>
  <jar-file>z-bean.jar</jar-file>
  <exclude-unlisted-classes>false</exclude-unlisted-classes>
  <shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>
  <properties>
    <property name="eclipselink.jdbc.native-sql" value="true" />
    <property name="eclipselink.jdbc.fetch-size" value="200" />
    <property name="eclipselink.refresh" value="true"/>
    <property name="eclipselink.cache.shared.default" value="false" />
    <property name="eclipselink.cache-usage" value="CheckCacheThenDatabase" />
    <property name="eclipselink.query-results-cache.ignore-null" value="true" />
    <property name="eclipselink.query-results-cache.expiry" value="120000" />
    <property name="javax.persistence.lock.timeout" value="6000"/>
    <property name="eclipselink.jdbc.cache-statements" value="true" />
    <property name="eclipselink.logging.level" value="INFO" />    
    <property name="eclipselink.cache.type.default" value="WEAK"/>
    <property name="eclipselink.flush-clear.cache" value="Drop"/>
    <property name="eclipselink.persistence-context.reference-mode" value="WEAK"/>
  </properties>
  </persistence-unit>
</persistence>
Лог:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
[EL Severe]: 2024-03-31 14:07:34.388--ServerSession(1618929118)--java.lang.NoClassDefFoundError: ais/server/beans/fhd/operresult/OperResultTemplate
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
        at java.lang.Class.getDeclaredMethods(Class.java:1975)
        at org.eclipse.persistence.internal.security.PrivilegedAccessHelper.getDeclaredMethods(PrivilegedAccessHelper.java:342)
        at org.eclipse.persistence.internal.jpa.metadata.listeners.EntityListenerMetadata.getDeclaredMethods(EntityListenerMetadata.java:249)
        at org.eclipse.persistence.internal.jpa.metadata.listeners.EntityClassListenerMetadata.process(EntityClassListenerMetadata.java:89)
        at org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor.processListeners(EntityAccessor.java:1226)
        at org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.addEntityListeners(MetadataProcessor.java:140)
        at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:637)
        at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getAbstractSession(EntityManagerFactoryDelegate.java:205)
        at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:305)
        at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:337)
        at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:318)
        at org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory.createEntityManager(ReloadableEntityManagerFactory.java:208)
        at org.apache.openejb.persistence.JtaEntityManagerRegistry.getEntityManager(JtaEntityManagerRegistry.java:125)
        at org.apache.openejb.persistence.JtaEntityManager.getEntityManager(JtaEntityManager.java:145)
        at org.apache.openejb.persistence.JtaEntityManager.typedProxyIfNoTx(JtaEntityManager.java:382)
        at org.apache.openejb.persistence.JtaEntityManager.createQuery(JtaEntityManager.java:454)
        at ais.server.JPAQuery.findByCriteria(JPAQuery.java:110)
        at ais.server.JPAQuery.find(JPAQuery.java:139)
        at ais.server.DocumentService.getModule(DocumentService.java:880)
        at ais.server.DocumentService.getParameterValue(DocumentService.java:292)
        at ais.server.DocumentService.getSystemModule(DocumentService.java:647)
        at ais.server.DocumentService.getParameterValue(DocumentService.java:292)
        at ais.server.DocumentService.getParameterValue(DocumentService.java:287)
        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.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205)
        at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186)
        at org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:191)
        at org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:102)
        at sun.reflect.GeneratedMethodAccessor80.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205)
        at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186)
        at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:85)
        at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:252)
        at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:212)
        at org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:265)
        at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:260)
        at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:89)
        at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:347)
        at ais.server.DocumentService$$LocalBeanProxy.getParameterValue(ais/server/DocumentService.java)
        at ais.liquibase.LiquibaseServlet.init(LiquibaseServlet.java:79)
        at javax.servlet.GenericServlet.init(GenericServlet.java:158)
        at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1144)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:985)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4883)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5197)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.deployWar(TomcatWebAppBuilder.java:652)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.deployWebApps(TomcatWebAppBuilder.java:592)
        at org.apache.tomee.catalina.deployment.TomcatWebappDeployer.deploy(TomcatWebappDeployer.java:47)
        at org.apache.openejb.assembler.DeployerEjb.deploy(DeployerEjb.java:177)
        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.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205)
        at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186)
        at org.apache.openejb.security.internal.InternalSecurityInterceptor.invoke(InternalSecurityInterceptor.java:35)
        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.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205)
        at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186)
        at org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:191)
        at org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:102)
        at sun.reflect.GeneratedMethodAccessor80.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205)
        at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186)
        at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:85)
        at org.apache.openejb.core.singleton.SingletonContainer._invoke(SingletonContainer.java:272)
        at org.apache.openejb.core.singleton.SingletonContainer.invoke(SingletonContainer.java:221)
        at org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:371)
        at org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:182)
        at org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:360)
        at org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:247)
        at org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:104)
        at org.apache.openejb.server.httpd.ServerServlet.service(ServerServlet.java:60)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
        at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
        at org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke(OpenEJBSecurityListener.java:97)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:615)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1627)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: ais.server.beans.fhd.operresult.OperResultTemplate
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1358)
        at org.apache.tomee.catalina.TomEEWebappClassLoader.loadClass(TomEEWebappClassLoader.java:208)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180)
        ... 111 more
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.03.2024, 14:25
Ответы с готовыми решениями:

Проблема с приложением
Я разбираюсь с библиотекой PyQt5, появилась пробема с отступами: import sys from PyQt5 import QtWidgets, QtCore, QtGui ...

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

Проблема с приложением Zoom
Всем привет! Просьба помочь со всеми &quot;любимым&quot; приложением Zoom )). Проблема вот в чем: я подключаюсь к конференции как участник,...

7
 Аватар для Thousbe
53 / 27 / 9
Регистрация: 04.05.2013
Сообщений: 83
31.03.2024, 16:28
Оба приложения деплоятся как EAR?
Каждый WAR'ник загружается своим загрузчиком классов, поэтому у двух приложений нет взаимного доступа к классам друг друга.
0
0 / 0 / 0
Регистрация: 31.03.2024
Сообщений: 8
31.03.2024, 17:34  [ТС]
Оба приложения WARники. Я читал в документации, что каждый WAR'ник загружается отдельным загрузчиком классов. Но тем не менее, проблема есть и как с ней бороться ума не приложу.
0
 Аватар для Thousbe
53 / 27 / 9
Регистрация: 04.05.2013
Сообщений: 83
31.03.2024, 18:14
Либо сделать каждое приложение самодостаточным, чтобы общие классы входили в каждый war'ник. Либо делать ear'ник и выносить общие классы в общую библиотеку.
0
0 / 0 / 0
Регистрация: 31.03.2024
Сообщений: 8
31.03.2024, 18:22  [ТС]
По сути так и есть, каждое приложение самодостаточное. общие классы вынесены в отдельный z-bean.jar, который лежит в каждом war.
0
 Аватар для Thousbe
53 / 27 / 9
Регистрация: 04.05.2013
Сообщений: 83
31.03.2024, 18:59
Первое что приходит на ум, сборщик обычно помещает общие библиотеки в WEB-INF/lib. Стоит попробовать указать полный путь
XML
1
<jar-file>lib/z-bean.jar</jar-file>
0
0 / 0 / 0
Регистрация: 31.03.2024
Сообщений: 8
31.03.2024, 19:06  [ТС]
Не помогло. при развертывании автоматом определяется путь до WEB-INF/lib. Если я что-то добавляю к имени файла, тогда файл не находит.
0
0 / 0 / 0
Регистрация: 31.03.2024
Сообщений: 8
16.01.2025, 14:28  [ТС]
Ещё актуально, может у кого-то есть еще идеи?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.01.2025, 14:28
Помогаю со студенческими работами здесь

Проблема с консольным приложением
Здравствуйте. Вчера писал уже на эту тему - так и не дождался ответа. Чтобы была максимальная конкретика: Вот код на C#: using...

Проблема с консольным приложением в Qt
По поводу Qt, поставил вчера на ноут, пытался написать приложение, иногда при запуске приложение не выполняется, пишет синим цветом: ...

Java DB/Derby обмен данными с приложением
Есть простое приложение JavaApplication. Необходимо соединить его с базой данных Derby и произвести обмен данными. Ввести данные из...

Управление Java приложением средствами VBA
Доброго времени суток, форумчане! Требуется автоматизировать повторяющиеся действия: копирование данных из документа Word и их вставка...

Как связать БД на Oracle с приложением на Java
У меня есть БД на Oracle. Нужно написать приложения на Java, кот. обращалась с запросами к этой БД. Есть ли какие-то классы для этого?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru