Hi Dan,

While trying to create a simple app I found out the problem was in my code. I had a method with @PostConstruct where a field (with @Injected) being called was null. Shouldn't an injected field be set before the PostConstruct-method is called?

I can go on for now because I solved this in another way.

But now I've got another problem. I'm running the app in prototyping mode using WebServer-class. It starts without context-path set and I can't open any page. Should the context path be configured somewhere?

Erik

On 04/29/2016 04:11 PM, Dan Haywood wrote:
Bit difficult to say without seeing the reason for the NullPointerException.

You might want to use the current simpleapp archetype to generate a blank
webapp, and then do a merge over.  Steve Cameron did something similar
recently, didn't seem to take him long...



On 29 April 2016 at 14:53, Erik de Hair <[email protected]> wrote:

Hi Dan,

On 04/29/2016 03:35 PM, Dan Haywood wrote:

remove the line:

   bind(AppManifest.class).to(PortalModuleAppManifest.class);

from the PortalApplication... I think the error says its already
configured, probably because the isis.appManifest property is set in
isis.properties (or equivalently specified as -m flag to o.a.i.WebServer).

If that's the case, it might be a documentation issue that needs fixing.

Removing the line and setting the manifest property in isis.properties
does work but now I get another exception:

15:50:23,239  [IsisWicketApplication main       ERROR]  Failed to
initialize
com.google.inject.ProvisionException: Unable to provision, see the
following errors:

1) Error in custom provider,
org.apache.isis.core.runtime.system.transaction.IsisTransactionManagerException:
java.lang.NullPointerException
   at
org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:127)
   at
org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:127)
   while locating org.apache.isis.core.runtime.system.IsisSystem
     for field at
org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.isisSystem(IsisWicketApplication.java:149)
   while locating webapp.PortalApplication

1 error
     at
com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:482)
     at
com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:67)
     at
com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:984)
     at
org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:264)
     at webapp.PortalApplication.init(PortalApplication.java:102)


let me know...

Dan


On 29 April 2016 at 14:31, Erik de Hair <[email protected]> wrote:

Hi,
When trying to run our application with org.apache.isis.WebServer using
an
AppManifest I get the following error:

15:07:14,497  [IsisWicketApplication main       ERROR]  Failed to
initialize
com.google.inject.CreationException: Unable to create injector, see the
following errors:

1) A binding to org.apache.isis.applib.AppManifest was already configured
at

org.apache.isis.core.runtime.runner.IsisInjectModule.configure(IsisInjectModule.java:107).
    at webapp.PortalApplication$1.configure(PortalApplication.java:94)
(via
modules: com.google.inject.util.Modules$OverrideModule ->
webapp.PortalApplication$1)

1 error
      at

com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:466)
      at

com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:155)
      at

com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)
      at com.google.inject.Guice.createInjector(Guice.java:96)
      at com.google.inject.Guice.createInjector(Guice.java:73)
      at com.google.inject.Guice.createInjector(Guice.java:62)
      at

org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:262)
      at webapp.PortalApplication.init(PortalApplication.java:104)
      at
org.apache.wicket.Application.initApplication(Application.java:823)


ThenewIsisWicketModule-method of our PortalApplication:

@Override
protectedModule newIsisWicketModule()
{
     finalModule isisDefaults =super.newIsisWicketModule();

     finalModule resellerPortalOverrides =newAbstractModule()
     {
        @Override
        protected voidconfigure()
        {
           bind(PageClassList.class).to(PortalPageClassList.class);


bind(String.class).annotatedWith(Names.named("applicationName")).toInstance("ITCO
Portal");


bind(String.class).annotatedWith(Names.named("applicationCss")).toInstance("css/application.css");


bind(String.class).annotatedWith(Names.named("applicationJs")).toInstance("scripts/application.js");


bind(String.class).annotatedWith(Names.named("welcomeMessage")).toInstance(readLines("welcome.html"));


bind(String.class).annotatedWith(Names.named("aboutMessage")).toInstance(readLines("about.html"));


bind(String.class).annotatedWith(Names.named("brandLogoHeader")).toInstance("/portal/images/Pocos-Logo-Powering-portal.png");


bind(String.class).annotatedWith(Names.named("brandLogoSignin")).toInstance("/portal/images/Pocos-Logo-Powering-portal.png");


bind(InputStream.class).annotatedWith(Names.named("metaInfManifest")).toProvider(Providers.of(getServletContext().getResourceAsStream("/META-INF/MANIFEST.MF")));


bind(ComponentFactoryRegistrar.class).to(PortalComponentFactoryRegistrar.class);
           bind(AppManifest.class).to(PortalModuleAppManifest.class);
        }
     };

     returnModules.override(isisDefaults).with(resellerPortalOverrides);
}

Did I forget something?

Erik





Reply via email to