Title: Message
Do you have the ServletContextListener and other lifecycle listeners which set up the containers configured?
-----Original Message-----
From: Gilbert, Jeffrey [mailto:[EMAIL PROTECTED]
Sent: Thursday, February 19, 2004 3:11 PM
To: [EMAIL PROTECTED]
Subject: [OS-webwork] xwork and components and NullPointerExceptions

It looks to me as if xwork is not loading my component?

<components>

    <component>

        <scope>application</scope>

        <class>com.gilbert.providers.impl.TestProviderImpl</class>

        <enabler>com.gilbert.providers.TestProviderAware</enabler>

    </component>

</components>


My action is implements TestProviderAware and my xwork.xml implements the components interceptor (in the defaultStack).

<interceptor name="component" class="com.opensymphony.xwork.interceptor.component.ComponentInterceptor" />

<interceptor-stack name="defaultStack">

<interceptor-ref name="component"/>

      <interceptor-ref name="model-driven"/>

      <interceptor-ref name="static-params"/>

      <interceptor-ref name="params"/>

</interceptor-stack>


So why when I try to invoke a method in my component am I receiving a NullPointerException? 

package com.gilbert;

import com.opensymphony.xwork.ActionSupport;

import com.opensymphony.xwork.ModelDriven;

import com.gilbert.models.Person;

import com.gilbert.providers.TestProviderAware;

import com.gilbert.providers.TestProvider;

import org.apache.commons.logging.LogFactory;

import org.apache.commons.logging.Log;

/**

 * <p>Testing Components in xwork</p>

 *

 * Created by:

 * User: JG

 * Date: Feb 12, 2004

 * Time: 8:31:47 PM

 */

public class HelloWorld extends ActionSupport implements ModelDriven, TestProviderAware  {

    private static Log log = LogFactory.getLog(HelloWorld.class);

    private Person person = new Person();

    private String greeting;

    private TestProvider testProvider;

    public String getGreeting() {

        return this.greeting;

    }

    public String execute() throws Exception {

        if (log.isDebugEnabled()) log.debug("execute called");

        testProvider.testMethod("testMethod in testProvider called!");

        greeting = "Hello, " + person.getName();

        return this.SUCCESS;

    }

    public Object getModel() {

        return this.person;

    }

    public void setTestProvider(TestProvider testProvider) {

        this.testProvider = testProvider;

    }

}


What am I doing wrong???

Thanks,

Jeff

Reply via email to