cant call ejb service; com.vaadin.event.ListenerMethod$MethodException

hello,

I am new to vaadin. Right now we are working on jee project (ejb3 + vaadin).

here is the sample code

MainApp extends Application
	
        @EJB
	GreeterService service;

	private void setHomeComponent() {

		Label label = new Label(service.sayHello() + " vaadin user");
		horizontalSplit.setSecondComponent(label);

	}

above code is working perfectly fine. but if i call setMainComponent(getHomeView()) from init like below and call ejb service from other class then it is giving error.

	public void init() {

		buildMainLayout();	
		setMainComponent(getListView());

	}

	private void setMainComponent(Component c){
		horizontalSplit.setSecondComponent(c);
	}

	private ListView getListView() {
		if (listView == null) {
			listView = new ListView(this);
		}
		return ListView;
	}

Listview extends Label

        @EJB
	GreeterService service;

private MainApp app;

public  HomeView(final MainApp app) {
		this.app = app;
		addStyleName("view");
		setCaption(service.sayHello() + " vaadin user");
		setSizeFull();
	}

Error log:

com.vaadin.event.ListenerMethod$MethodException
Cause: java.lang.NullPointerException
	at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:162)
	at com.vaadin.ui.AbstractComponent.fireEvent(AbstractComponent.java:1166)
	at com.vaadin.ui.Button.fireClick(Button.java:380)
	at com.vaadin.ui.Button.changeVariables(Button.java:196)
	at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractCommunicationManager.java:1297)
	at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables(AbstractCommunicationManager.java:1217)
	at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractCommunicationManager.java:733)
	at com.vaadin.terminal.gwt.server.CommunicationManager.handleUidlRequest(CommunicationManager.java:296)
	at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:483)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
	at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:228)
	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
	at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
	at com.westhouse.crm.ui.ListView.getp(ListView.java:32)
	at com.westhouse.crm.MainApplication.getListView(MainApplication.java:179)
	at com.westhouse.crm.MainApplication.showShare(MainApplication.java:192)
	at com.westhouse.crm.MainApplication.buttonClick(MainApplication.java:166)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:490)
	... 35 more

I dont understand why its not possible to call ejb service from other then MainApp class. This is our first step and i am stuck within it.

Please help.

Solved for now.

[code]

private ListView getListView() {
if (listView == null) {
listView = new ListView(this, service);
}
return ListView;
}

Listview extends Label

    @EJB
GreeterService service;

private MainApp app;

public HomeView(final MainApp app, GreeterService service) {
this.app = app;
this.service = service;
addStyleName(“view”);
setCaption(service.sayHello() + " vaadin user");
setSizeFull();
}

[/code]