У меня есть веб-приложение Tapestry, разработанное с Eclipse и ранее работающее с использованием встроенного причала Eclipse с использованием плагина Maven для причала, точнее, с использованием причала: run.Как развернуть мой проект веб-приложений Eclipse Tapestry, ранее выполнявшийся во встроенном Jetty, на автономный Jetty?
Приложение построено с использованием Tapestry 5.3.8 и использует Hibernate в качестве поставщика непрерывности. Задняя часть - это установка XAMPP.
Когда я экспортировать приложения в WAR, и поместить его в папку автономной пристаней WebApps и начать причалом, я получаю следующее сообщение об ошибке:
Render queue error in BeginRender[Index:layout.pagelink]:
Error obtaining injected value for field somePkg.pages.TestData.em:
Unable to add method javax.persistence.EntityGraph createEntityGraph(java.lang.String) to
class $EntityManager_14cbc42cc34: java.io.IOException: invalid constant type: 15
em
является EntityManager, который вводится, когда страница загружен.
tapestry.ioc 5.3.8 использует javassist 3.12, который кажется виновником. hibernate 4.3.8 использует javassist 3.18.1, который работает. – danowar
Рекомендация: Почему бы не пройти весь путь, как с движком JavaScript, и использовать только свободную связь для байт-кода? – danowar
Я удивлен, что в tapestry-ioc 5.3.8 есть ссылка на javassist. Джавассист должен быть удален из основного гобелена. Можете ли вы попробовать добавить [exclude] (https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html) к зависимости гобелена, чтобы исключить javassist? Возможно, вам нужно будет явно объявить javassist версию в вашем pom, чтобы использовать явную версию (поскольку ближайшее определение выигрывает для конфликтов зависимостей) –