Got a running SpringDM with pax-wicket 0.7.2.

BundleA exports a VotingService. BundleB (wicket) via a plain Service
can use that service -> so SpringDM works.

In my OverviewPage (BundleB) i added an AjaxFallback Link which calls a
service-method.

but when the services ping() method got called, a NPE occurs:

java.lang.NullPointerException
at
org.ops4j.pax.wicket.util.proxy.LazyInitProxyFactory$JdkHandler.invoke(LazyInitProxyFactory.java:233)
at org.ops4j.pax.wicket.util.proxy.$Proxy17.ping(Unknown Source)
at de.bitnoise.konferenz.web.OverviewPage$1.onClick(OverviewPage.java:98)
at
org.apache.wicket.ajax.markup.html.AjaxFallbackLink$1.onEvent(AjaxFallbackLink.java:73)


Where OverviewPage.java:98 is:

  String result = ref1.ping("call0");

where ref1 is :

  @PaxWicketBean
  ExampleService ref1;

ExampleService  is actually a service inside the same bundle. But the
same error occurs with the VotingService from the other bundle.

i'm a little bit confused by the Documentation:
 http://team.ops4j.org/wiki/display/paxwicket/Injection+%28Quick%29

it say's :
"Injection is always local. Components in Bundle A can only receive
beans available in Bundle A's application context"

Where some lines below :

"As you might guess already it does not have to be a classic bean only
but could also be a <reference> or a <list> or any other named entity in
SpringDM or Blueprint." -> Which would be a not local bean!???

Anyway. The Bean in my case ( ExampleService ) is local + exported as
service, but it's still a local bean.

At the moment i think pax-wicket doesn't know the correct Spring
context. Is there someway to register the Spring context?

PS:
For completeness, there is no BundelActivator. I use a Spring
postConstruct to register the wicket app:

  @PostConstruct
  public void init()
  {
    System.out.println("##### Start " + bc);
    String mountPoint = "deptStore";
    String applicationName = "departmentstore";
    store = new RootContentAggregator(bc, applicationName, "swp");
    store.register();

    overviewPageFactory = new OverviewPageFactory(bc, store,
applicationName,
        "overview");
    overviewPageFactory.register();

    PaxWicketApplicationFactory applicationFactory = new
PaxWicketApplicationFactory(
        bc, OverviewPage.class, mountPoint, applicationName);

    // This registers the pax-wicket service as OSGi Service.
    serviceRegistration = applicationFactory.register();
    System.out.println("##### DONE");
  }


create via :

<beans:bean class="de.bitnoise.konferenz.web.internal.MyAppFactory"
init-method="init"/>


Cheers Rainer


_______________________________________________
general mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/general

Reply via email to