Калитка: ModalWindow и ClassNotFound: CompressedResourceReference
Каждый раз, когда я пытаюсь реализовать модальное окно, я получаю:
java.lang.ClassNotFoundException: org.apache.wicket.request.resource.CompressedResourceReference
Ни одна из моих библиотек не имеет этого элемента. Моя зависимость:
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-core</artifactId>
<version>1.5.3</version>
</dependency>
<!-- DatePicker -->
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-datetime</artifactId>
<version>1.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-extensions</artifactId>
<version>1.5.3</version>
</dependency>
Вот как я реализовал моё модальное окно:
import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.util.time.Duration;
public class ModalPanel1 extends WebPage
{
public ModalPanel1(String id)
{
final ModalWindow modalWindow = new ModalWindow("modal");
modalWindow.setTitle("Popup");
modalWindow.setInitialWidth(400);
modalWindow.setInitialHeight(400);
modalWindow.setResizable(true);
modalWindow.setContent(new AbstractModalClosePanel(modalWindow)
{
public void onClick(AjaxRequestTarget target)
{
modalWindow.close(target);
}
});
add(modalWindow);
add(new AjaxLink<Void>("open")
{
@Override
public void onClick(AjaxRequestTarget target)
{
modalWindow.show(target);
}
});
add(new AbstractAjaxTimerBehavior(Duration.seconds(2))
{
@Override
protected void onTimer(AjaxRequestTarget target)
{
modalWindow.show(target);
stop();
}
});
}
}
а также
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
import org.apache.wicket.markup.html.panel.Panel;
public abstract class AbstractModalClosePanel extends Panel
{
public AbstractModalClosePanel(ModalWindow modalWindow)
{
super(modalWindow.getContentId());
}
Там нет старого импорта.
Полная трассировка стека
Полный стек:org.apache.wicket.WicketRuntimeException: не удалось создать экземпляр страницы с помощью конструктора public com.onespark.wicket.components.tasks.Tasks(). Может быть, это не существует, может быть, это не видно (публично). в org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:196) в org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:68) в org.apache.wicket.session.DefaultPageForyFory (DefaultPageFactory.java:47) в org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:103) в org.apache.wicket.request.handler.PageProvider.resolvePageInstance(PageProvider.java:2.64).wicket.request.handler.PageProvider.getPageInstance(PageProvider.java:165) в org.apache.wicket.request.handler.render.PageRenderer.getPage(PageRenderer.java:78) в org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:105) в org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:224) в org.apache.wicket.request.handRedHandPlayer RenderPageRequestHandler.java:167) в org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:750) в org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) в org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:252) в org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:209) в org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:280) в org.apache.wicket.protocol.http.WicketFilter.pro (WizardFilter.pro).java:162)java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(собственный метод) в sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java.conf.javid).java:513) в org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:177) в org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:68) в org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:47) в org.apache.wicket.DefaultMapper Context.newPageInstance (DefaultMapperContext.java:103) в org.apache.wicket.request.handler.PageProvider.resolvePageInstance(PageProvider.java:264) в org.apache.wicket.request.handler.PageProvider.getPageInance ((165) на org.apache.wicket.request.handler.render.PageRenderer.getPage(PageRenderer.java:78) на org.apache.wicket.request.handler.render.WebPageRenderer.renderPage (WebPageRenderer.java:105) в org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:224) в org.apache.wicket.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:167) в org.ap.cycle.RequestCycle $ HandlerExecutor.respond (RequestCycle.java:750) в org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) в org.apache.wicket.request.cycle.RequestCycle.exte.java: 252) в org.apache.wicket.request.cycle.RequestCycle.processRequest (RequestCycle.java:209) в org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:280) в org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:162)java.lang.NoClassDefFoundError: источник запроса / запроса / заявки com.onespark.wicket.components.tasks.ModalPanel1.(ModalPanel1.java:16) в com.onespark.wicket.components.tasks.Tasks.(Tasks.java:14) в java.lang.reflect.Constructor.newInstance(Constructor.java:513) в org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:177) в org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:68) в org.apache.wicket.session.DefaultPageFactory.newPage (DefaultPageFactory.java:47) в org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:103) в org.apache.wicket.request.handler.PageProvider.ancevPageRence.jpg) в org.apache.wicket.request.handler.PageProvider.getPageInstance(PageProvider.java:165) в org.apache.wicket.request.han dler.render.PageRenderer.getPage (PageRenderer.java:78) в org.apache.wicket.request.handler.render.WebPageRenderer.renderPage (WebPageRenderer.java:105) в org.apache.wicket.request.handler.render. WebPageRenderer.respond (WebPageRenderer.java:224) в org.apache.wicket.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:167) в org.apache.wicket.request.cycle.RequestCecler. Java: 750) в org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) в org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:252) в org.apache.wicket.request.cycle.RequestCycle.processRequest (RequestCycle.java:209) в org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:280) в org.apache.west.protocol.httpcessFir (WicketFilter.java:162)
1 ответ
CompressedResourceReference
был сброшен в Wicket 1.5 вместе с другими материалами для сжатия.
Если у вас есть ссылка на это в вашем собственном коде, вы должны просто использовать обычный ResourceReference
или другая несжатая версия.
В более ранних версиях он использовался в ModalWindow
, но это не по крайней мере в 1.5.3, так
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-extensions</artifactId>
<version>1.5.3</version>
</dependency>
должен был работать.
Я бы попробовал это снова и убедился, что вы получили чистое обновление, чтобы не было ссылки на старые ModalWindow
код торчит.
Вполне возможно, что в кандидате на релиз все еще были ссылки, так как я думаю, что у некоторых кандидатов на релиз он все еще был в wicket-core.
Вы также можете захотеть взглянуть на большую часть трассировки стека, чтобы сузить, где находится ссылка на этот класс.