【问题标题】:Wicket: ModalWindow and ClassNotFound: CompressedResourceReference检票口:ModalWindow 和 ClassNotFound:CompressedResourceReference
【发布时间】:2012-01-20 09:33:28
【问题描述】:

每次我尝试实现模态窗口时都会得到:

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.DefaultPageFactory.newPage (DefaultPageFactory.java:47) 在 org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:103) 在 org.apache.wicket.request.handler.PageProvider.resolvePageInstance(PageProvider.java:264) 在 org.apache。 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) at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:224) at org.apache.wicket.request.handler.RenderPageRequestHandler.respond( RenderPageRequestHandler.java:167) 在 org.apache.wicket.request.cycle.RequestCycle$Handl erExecutor.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.processRequest(WicketFilter.java:162)java.lang.reflect.InvocationTargetException 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在 java。 org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:177) 上的 lang.reflect.Constructor.newInstance(Constructor.java:513) org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java: 68)在 org.apache.wicket.session.Defau ltPageFactory.newPage(DefaultPageFactory.java:47) 在 org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:103) 在 org.apache.wicket.request.handler.PageProvider.resolvePageInstance(PageProvider.java:264) 在 org .apache.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.handler.RenderPageRequestHandler .respond(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:2 52) 在 org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:280) 在 org.apache.wicket 的 org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:209) .protocol.http.WicketFilter.processRequest(WicketFilter.java:162)java.lang.NoClassDefFoundError: org/apache/wicket/request/resource/CompressedResourceReference at com.onespark.wicket.components.tasks.ModalPanel1.(ModalPanel1.java: 16) 在 org.apache.wicket.session.DefaultPageFactory 的 java.lang.reflect.Constructor.newInstance(Constructor.java:513) 的 com.onespark.wicket.components.tasks.Tasks.(Tasks.java:14)。 newPage(DefaultPageFactory.java:177) at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:68) at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:47) at org.apache .wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:103) 在 org.apache.wicket.request.handler.PageProvi der.resolvePageInstance(PageProvider.java:264) 在 org.apache.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.handler.RenderPageRequestHandler.respond(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.processRequest(WicketFilter.java:162)

【问题讨论】:

    标签: jar dependencies wicket modal-window


    【解决方案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 中。

    您可能还想查看更多堆栈跟踪以缩小对此类的引用。

    【讨论】:

    • 我编辑了我的问题。在那里你可以看到我没有旧的导入。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多