NoSuchMethodError

Post Reply
kimg
Posts: 25
Joined: 22 Aug 2013, 17:13

04 Jul 2016, 15:08

Hi,

I'm a happy user of the Atlas theme. It has been running without any problems - except the ones that i create myself - using PF v 5.3.

For testing i switched to PF v 6.0 (community edition) but when i i click a button in my startup page i get an error:

java.lang.NoSuchMethodError.......getComponentResouces from facescontext.

Is it an issue with the theme or should i look elsewhere?

/
Kim

User avatar
aragorn
Posts: 2926
Joined: 29 Jun 2013, 12:38

11 Jul 2016, 15:33

Please try new Atlas release; http://blog.primefaces.org/?p=4003

kimg
Posts: 25
Joined: 22 Aug 2013, 17:13

31 Jul 2016, 14:29

I will try to update my Atlas installation.

what do i need to do to update my Atlas from 1.1 to 1.1.1?

the only information i can find is from 1.0.1 to 1.1 - is it the same operation?

Migration Guide
1.0.1 to 1.1

- Replace theme.jar with new jar

1.0 to 1.0.1

- Update atlas-layout.css, atlas-layout.less, core-layout.css and template.xhtml
- Update layout.js.

kimg
Posts: 25
Joined: 22 Aug 2013, 17:13

02 Aug 2016, 23:12

I still have this problem.

What i do is this:

I create a standard Maven Web application.

Includes Primefaces v 6.0.

I install the Atlas theme as I usually do.

I build -> deploy -> run (empty page for example.)

Everything works as standard and looks nice.

I will then implement the changes you made for me in this thread some months back:

http://forum.primefaces.org/viewtopic.php?f=36&t=44335

but the topbar doesn't work with these changes. No drop down appears.

So I downgrade my Primefaces to 5.3.

Then I get this error:

java.lang.NoSuchMethodError: org.primefaces.context.ApplicationContext.getConfig()Lorg/primefaces/config/PrimeConfiguration;
at org.primefaces.atlas.component.menu.AtlasMenu.processEvent(AtlasMenu.java:115)
at javax.faces.component.UIComponent$ComponentSystemEventListenerAdapter.processEvent(UIComponent.java:2563)
at javax.faces.event.SystemEvent.processListener(SystemEvent.java:108)
at javax.faces.event.ComponentSystemEvent.processListener(ComponentSystemEvent.java:118)
at com.sun.faces.ap

It also happens if i make a vanilla installation of Atlas 1.1.1 on primefaces 5.3.

I would like this constellation to work:

Primefaces 6.0
Atlas 1.1.1 plus the changes that you made for me.

Is it possible that you can integrate these changes in a future version of Atlas?

Kim

User avatar
aragorn
Posts: 2926
Joined: 29 Jun 2013, 12:38

03 Aug 2016, 13:04

Please try the following js code instead of old custom js on 6.0;

Code: Select all

        <script type="text/javascript">
//<![CDATA[
PrimeFaces.widget.Atlas.prototype.bindEvents = function () {
    var $this = this;
    this.firstActiveMenu = null;

    this.menuButton.off('click.menubutton').on('click.menubutton', function (e) {
        $this.layoutMenuClick = true;

        if ($this.menuWrapper.hasClass('active')) {
            $this.menuButton.removeClass('active');
            $this.menuWrapper.removeClass('active');
        }
        else {
            $this.menuButton.addClass('active');
            $this.menuWrapper.addClass('active');
            $this.topbarMenu.removeClass('active');
            $this.topmenuButton.removeClass('active');
        }
        e.preventDefault();
    });

    this.topmenuButton.off('click.topmenubutton').on('click.topmenubutton', function (e) {
        $this.topbarMenuClick = true;

        if ($this.topbarMenu.hasClass('active')) {
            $this.topbarMenu.removeClass('active');
            $this.topmenuButton.removeClass('active');
        }
        else {
            $this.topbarMenu.addClass('active');
            $this.topmenuButton.addClass('active');
            $this.menuButton.removeClass('active');
            $this.menuWrapper.removeClass('active');
        }
        e.preventDefault();
    });

    this.menulinks.on('click', function (e) {
        var menuitemLink = $(this),
                menuitem = menuitemLink.parent();

        if (menuitem.hasClass('active-menu-parent')) {
            menuitem.removeClass('active-menu-parent');
            menuitemLink.removeClass('active-menu').next('ul').removeClass('active-menu');
            $this.removeMenuitem(menuitem.attr('id'));
            $this.menubarActive = false;
        }
        else {
            var activeSiblings = $this.findActiveSiblings(menuitem);
            for(var i = 0; i< activeSiblings.length; i++) {
                var activeSibling = activeSiblings[i];
                activeSibling.removeClass('active-menu-parent');
                $this.removeMenuitem(activeSibling.attr('id'));

                activeSibling.find('ul.active-menu,a.active-menu').removeClass('active-menu');
                activeSibling.find('li.active-menu-parent').each(function () {
                    var menuitem = $(this);
                    menuitem.removeClass('active-menu-parent');
                    $this.removeMenuitem(menuitem.attr('id'));
                });
            }

            menuitem.addClass('active-menu-parent');
            menuitemLink.addClass('active-menu').next('ul').addClass('active-menu');
            $this.addMenuitem(menuitem.attr('id'));
            $this.menubarActive = true;
        }

        if (menuitemLink.next().is('ul')) {
            e.preventDefault();
        }
        else {
            $this.menuButton.removeClass('active');
            $this.menuWrapper.removeClass('active');
        }

        if (!$this.isPopupMenu) {
            $this.firstActiveMenu = $this.menu.children('li.active-menu-parent');
            $this.removeMenuitem($this.firstActiveMenu.attr('id'));
        }

        $this.saveMenuState();
    })
    .on('mouseenter', function() {
        if ($('body').hasClass('PopupMenu')) {
            return;
        }

        var menuitemLink = $(this),
            menuitem = menuitemLink.parent();

        if($this.menubarActive && document.documentElement.clientWidth > 960 && menuitem.closest('ul').attr('id') === "layout-menu" && !menuitem.hasClass('active-menu-parent')) {
            var prevMenuLink = menuitem.parent().find('a.active-menu');

            prevMenuLink.removeClass('active-menu').next('ul.active-menu').removeClass('active-menu');
            prevMenuLink.closest('li').removeClass('active-menu-parent');
            $this.removeMenuitem(prevMenuLink.closest('li').attr('id'));
            menuitem.addClass('active-menu-parent');
            menuitemLink.addClass('active-menu').next('ul[role="menu"]').addClass('active-menu');
        }

    });

    this.menuWrapper.on('click', function() {
        $this.layoutMenuClick = true;
    });

    this.topbarMenu.on('click', function() {
        $this.topbarMenuClick = true;
    });

    this.clickNS = 'click.' + this.id;
    $(document.body).off(this.clickNS).on(this.clickNS, function (e) {
        if(!$this.layoutMenuClick) {
            $this.menuButton.removeClass('active');
            $this.menuWrapper.removeClass('active');
            $this.menu.children('li.active-menu-parent').removeClass('active-menu-parent').children('a,ul').removeClass('active-menu');
            $this.menubarActive = false;
        }

        if(!$this.topbarMenuClick) {
            $this.topbarMenu.removeClass('active');
            $this.topmenuButton.removeClass('active');
            $this.topbarMenu.find('.active-menu').removeClass('active-menu');
            $this.topMenuActive = false;
        }

        $this.layoutMenuClick = false;
        $this.topbarMenuClick = false;
    });

    $(window).resize(function () {
        $this.equalLinks();
    });

    //topbar
    this.topbarMenu.find('a').click(function (e) {
        var link = $(this),
                submenu = link.next('ul');

        if (submenu.length) {
            if (submenu.hasClass('active-menu')) {
                submenu.removeClass('active-menu');
                link.removeClass('active-menu');
                $this.topMenuActive = false;
            } else {
                $this.topbarMenu.find('> li > ul.active-menu').removeClass('active-menu').prev('a').removeClass('active-menu');
                link.addClass('active-menu').next('ul').addClass('active-menu');
                $this.topMenuActive = true;
            }
        } else {
            if ($(e.target).is(':not(:input)')) {
                $this.topbarMenu.find('.active-menu').removeClass('active-menu');
                $this.topMenuActive = false;
            }
        }
        
        var href = link.attr('href');
        if(href && href.trim() == "#") {
            e.preventDefault();
        }
    })
    .on('mouseenter', function () {
        var link = $(this);

        if (link.parent().parent().is($this.topbarMenu) && $this.topMenuActive && document.documentElement.clientWidth > 960) {
            var submenu = link.next('ul');

            $this.topbarMenu.find('.active-menu').removeClass('active-menu');
            link.addClass('active-menu');

            if (submenu.length) {
                submenu.addClass('active-menu');
            }
        }
    });

};
     //]]>            
        </script>

-
java.lang.NoSuchMethodError: org.primefaces.context.ApplicationContext.getConfig()Lorg/primefaces/config/PrimeConfiguration;
at org.primefaces.atlas.component.menu.AtlasMenu.processEvent(AtlasMenu.java:115)
at javax.faces.component.UIComponent$ComponentSystemEventListenerAdapter.processEvent(UIComponent.java:2563)
at javax.faces.event.SystemEvent.processListener(SystemEvent.java:108)
at javax.faces.event.ComponentSystemEvent.processListener(ComponentSystemEvent.java:118)
at com.sun.faces.ap
- We'll fix this issue for next release.

Post Reply
  • Information
  • Who is online

    Users browsing this forum: No registered users and 1 guest