isis-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erik de Hair <e.deh...@pocos.nl>
Subject Re: Starting app with AppManifest (1.12.1)
Date Tue, 03 May 2016 07:44:35 GMT
Hi,

The problem had nothing to do with lack of a context path. I had a 
dependency conflict between servlet-api 2.5 (dependency of axis2) and 
servlet-api 3.x (dependency of org.apache.isis.WebServer).

The application is running now but I still have some troubles.

I've got some Wicket problems running the app from IntelliJ with 
WebServer class I get the following error:

org.apache.wicket.markup.MarkupNotFoundException: Failed to find markup 
file associated. SearchBarPanel: [SearchBarPanel [Component id = searchBar]]
     at 
org.apache.wicket.markup.html.panel.AssociatedMarkupSourcingStrategy.getMarkup(AssociatedMarkupSourcingStrategy.java:97)
     at 
org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:451)
     at org.apache.wicket.Component.getMarkup(Component.java:756)
     at 
org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:82)
     at 
org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:451)
     at org.apache.wicket.Component.getMarkup(Component.java:756)

I couldn't get the app running from Eclipse using the launch files and 
WebServer-class because 'class org.apache.isis.WebServer is not found'. 
So I don't know if it's an issue of using IntelliJ (configuration 
needed?). It looks like (using IntelliJ) the resources from the webapp 
are not loaded: I also get a 404 on some css-file for a custom 
wicket-page in the same app (that has nothing to do with Apache Isis).

I've also noticed that injected services are sometimes not injected so 
calls for these services result in nullpointer exceptions. Adding some 
service to the AppManifest did help at some point but at others the same 
service wasn't injected.

I will check the documentation again for setting up a project in 
IntelliJ but may be you can give me some hints for solving this.

Thanks,
Erik


On 05/02/2016 01:48 PM, Erik de Hair wrote:
> 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 <e.dehair@pocos.nl> 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 <e.dehair@pocos.nl> 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
>>>>>
>>>>>
>>>>>
>>>>>
>


Mime
View raw message