Калитка: 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.

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

Другие вопросы по тегам