You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@isis.apache.org by Stephen Cameron <st...@gmail.com> on 2018/01/11 03:27:08 UTC

Issue in moving to 1.16.0

Hi,

I can run an App in Eclipse OK, but when I try to install it on a test
server in Tomcat i get an error perventing the app starting

Caused by: java.lang.NoSuchMethodError:
org.apache.isis.applib.AppManifestAbstract.<init>(Lorg/apache/isis/applib/AppManifestAbstract$BuilderAbstract;)V
        at
org.apache.isis.applib.AppManifestAbstract2.<init>(AppManifestAbstract2.java:36)
        at
cooperation.application.manifest.CooperationAppAppManifest.<init>(CooperationAppAppManifest.java:58)

the relevant CooperationAppAppManifest.java is:

package cooperation.application.manifest;

import org.apache.isis.applib.AppManifestAbstract2;

import com.google.common.collect.ImmutableMap;

import
au.org.cooperation.modules.base.dom.CooperationBaseModuleDomSubmodule;
import cooperation.application.CooperationAppApplicationModule;
import
cooperation.application.fixture.CooperationAppApplicationModuleFixtureSubmodule;
import
cooperation.application.services.CooperationAppApplicationModuleServicesSubmodule;


/**
 * Bootstrap the application.
 */
public class CooperationAppAppManifest extends AppManifestAbstract2 {

    public static final Builder BUILDER = Builder.forModule(new
CooperationAppApplicationModule())
            .withAdditionalModules(
                    CooperationBaseModuleDomSubmodule.class,
                    CooperationAppApplicationModuleServicesSubmodule.class,
                    CooperationAppApplicationModuleFixtureSubmodule.class,
                    org.isisaddons.module.security.SecurityModule.class
            )

.withConfigurationPropertiesFile(CooperationAppAppManifest.class,
                    "isis.properties",
                    "authentication_shiro.properties",
                    "persistor_datanucleus.properties",
                    "viewer_restfulobjects.properties",
                    "viewer_wicket.properties"
            ).withAuthMechanism("shiro")
            .withAdditionalServices(

org.isisaddons.module.security.dom.password.PasswordEncryptionServiceUsingJBcrypt.class,

org.isisaddons.module.security.dom.permission.PermissionsEvaluationServiceAllowBeatsVeto.class
            ).withConfigurationProperties(ImmutableMap.of(
                    "isis.reflector.facets.include",

"org.isisaddons.module.security.facets.TenantedAuthorizationFacetFactory"));

    public CooperationAppAppManifest() {
        super(BUILDER); //*line 58*
    }

}

Re: Issue in moving to 1.16.0

Posted by Stephen Cameron <st...@gmail.com>.
Oops, me doing something silly again, have to do mvn clean and then mvn
install in Eclipse to get a valid war

On Thu, Jan 11, 2018 at 3:41 PM, Dan Haywood <da...@haywood-associates.co.uk>
wrote:

> This looks like you have a pre-1.16.0 version of AppManifestAbstract on
> your classpath.  It's possible that the IDE and Tomcat load JARs in a
> different order, so you're getting "jar hell".
>
> If you inspect the dependency tree using m2e in Eclipse, do you see any
> conflicts on the isis-core-applib?  If so, use <exclusions> to make sure
> the correct one is loaded.
>
> As an aside: this is though a mistake on my part.  It looks like 1.16.0 has
> broken binary compatibility of AppManifestAbstract.  The pre-1.16.0 release
> had a constructor that took an AppManifest.Builder, whereas 1.16.0 takes
> only an AppManifestAbstract.BuilderAbstract.  So apologies about that.
>
> HTH
> Dan
>
> On Thu, 11 Jan 2018 at 04:27 Stephen Cameron <st...@gmail.com>
> wrote:
>
> > Hi,
> >
> > I can run an App in Eclipse OK, but when I try to install it on a test
> > server in Tomcat i get an error perventing the app starting
> >
> > Caused by: java.lang.NoSuchMethodError:
> >
> > org.apache.isis.applib.AppManifestAbstract.<init>(
> Lorg/apache/isis/applib/AppManifestAbstract$BuilderAbstract;)V
> >         at
> >
> > org.apache.isis.applib.AppManifestAbstract2.<init>(
> AppManifestAbstract2.java:36)
> >         at
> >
> > cooperation.application.manifest.CooperationAppAppManifest.<init>(
> CooperationAppAppManifest.java:58)
> >
> > the relevant CooperationAppAppManifest.java is:
> >
> > package cooperation.application.manifest;
> >
> > import org.apache.isis.applib.AppManifestAbstract2;
> >
> > import com.google.common.collect.ImmutableMap;
> >
> > import
> > au.org.cooperation.modules.base.dom.CooperationBaseModuleDomSubmodule;
> > import cooperation.application.CooperationAppApplicationModule;
> > import
> >
> > cooperation.application.fixture.CooperationAppApplicationModul
> eFixtureSubmodule;
> > import
> >
> > cooperation.application.services.CooperationAppApplicationModul
> eServicesSubmodule;
> >
> >
> > /**
> >  * Bootstrap the application.
> >  */
> > public class CooperationAppAppManifest extends AppManifestAbstract2 {
> >
> >     public static final Builder BUILDER = Builder.forModule(new
> > CooperationAppApplicationModule())
> >             .withAdditionalModules(
> >                     CooperationBaseModuleDomSubmodule.class,
> >                     CooperationAppApplicationModul
> eServicesSubmodule.class,
> >                     CooperationAppApplicationModul
> eFixtureSubmodule.class,
> >                     org.isisaddons.module.security.SecurityModule.class
> >             )
> >
> > .withConfigurationPropertiesFile(CooperationAppAppManifest.class,
> >                     "isis.properties",
> >                     "authentication_shiro.properties",
> >                     "persistor_datanucleus.properties",
> >                     "viewer_restfulobjects.properties",
> >                     "viewer_wicket.properties"
> >             ).withAuthMechanism("shiro")
> >             .withAdditionalServices(
> >
> >
> > org.isisaddons.module.security.dom.password.
> PasswordEncryptionServiceUsingJBcrypt.class,
> >
> >
> > org.isisaddons.module.security.dom.permission.
> PermissionsEvaluationServiceAllowBeatsVeto.class
> >             ).withConfigurationProperties(ImmutableMap.of(
> >                     "isis.reflector.facets.include",
> >
> >
> > "org.isisaddons.module.security.facets.TenantedAuthorizationFacetFact
> ory"));
> >
> >     public CooperationAppAppManifest() {
> >         super(BUILDER); //*line 58*
> >     }
> >
> > }
> >
>

Re: Issue in moving to 1.16.0

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
This looks like you have a pre-1.16.0 version of AppManifestAbstract on
your classpath.  It's possible that the IDE and Tomcat load JARs in a
different order, so you're getting "jar hell".

If you inspect the dependency tree using m2e in Eclipse, do you see any
conflicts on the isis-core-applib?  If so, use <exclusions> to make sure
the correct one is loaded.

As an aside: this is though a mistake on my part.  It looks like 1.16.0 has
broken binary compatibility of AppManifestAbstract.  The pre-1.16.0 release
had a constructor that took an AppManifest.Builder, whereas 1.16.0 takes
only an AppManifestAbstract.BuilderAbstract.  So apologies about that.

HTH
Dan

On Thu, 11 Jan 2018 at 04:27 Stephen Cameron <st...@gmail.com>
wrote:

> Hi,
>
> I can run an App in Eclipse OK, but when I try to install it on a test
> server in Tomcat i get an error perventing the app starting
>
> Caused by: java.lang.NoSuchMethodError:
>
> org.apache.isis.applib.AppManifestAbstract.<init>(Lorg/apache/isis/applib/AppManifestAbstract$BuilderAbstract;)V
>         at
>
> org.apache.isis.applib.AppManifestAbstract2.<init>(AppManifestAbstract2.java:36)
>         at
>
> cooperation.application.manifest.CooperationAppAppManifest.<init>(CooperationAppAppManifest.java:58)
>
> the relevant CooperationAppAppManifest.java is:
>
> package cooperation.application.manifest;
>
> import org.apache.isis.applib.AppManifestAbstract2;
>
> import com.google.common.collect.ImmutableMap;
>
> import
> au.org.cooperation.modules.base.dom.CooperationBaseModuleDomSubmodule;
> import cooperation.application.CooperationAppApplicationModule;
> import
>
> cooperation.application.fixture.CooperationAppApplicationModuleFixtureSubmodule;
> import
>
> cooperation.application.services.CooperationAppApplicationModuleServicesSubmodule;
>
>
> /**
>  * Bootstrap the application.
>  */
> public class CooperationAppAppManifest extends AppManifestAbstract2 {
>
>     public static final Builder BUILDER = Builder.forModule(new
> CooperationAppApplicationModule())
>             .withAdditionalModules(
>                     CooperationBaseModuleDomSubmodule.class,
>                     CooperationAppApplicationModuleServicesSubmodule.class,
>                     CooperationAppApplicationModuleFixtureSubmodule.class,
>                     org.isisaddons.module.security.SecurityModule.class
>             )
>
> .withConfigurationPropertiesFile(CooperationAppAppManifest.class,
>                     "isis.properties",
>                     "authentication_shiro.properties",
>                     "persistor_datanucleus.properties",
>                     "viewer_restfulobjects.properties",
>                     "viewer_wicket.properties"
>             ).withAuthMechanism("shiro")
>             .withAdditionalServices(
>
>
> org.isisaddons.module.security.dom.password.PasswordEncryptionServiceUsingJBcrypt.class,
>
>
> org.isisaddons.module.security.dom.permission.PermissionsEvaluationServiceAllowBeatsVeto.class
>             ).withConfigurationProperties(ImmutableMap.of(
>                     "isis.reflector.facets.include",
>
>
> "org.isisaddons.module.security.facets.TenantedAuthorizationFacetFactory"));
>
>     public CooperationAppAppManifest() {
>         super(BUILDER); //*line 58*
>     }
>
> }
>