MXML Component as Actionscript Class Property

I am trying to create a custom actionscript component that has an HTTPService property that I define in MXML and pass to the “service” property of a DatabaseNavigator component. However I keep getting null object errors. Here is my code:

index.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:db="database.containers.*" layout="absolute" width="700" height="700">
	<mx:Style source="assets\css
scsadmin.css"></mx:Style>
	<mx:Script>
	<![CDATA[
		import mx.controls.Alert;
		import mx.events.IndexChangedEvent;
		import database.containers.DatabaseNavigator;
	]]>
	</mx:Script>
	<mx:Fade id="fader" duration="1000" alphaFrom="1.0" alphaTo="0.0"/>
	<mx:HTTPService id="databaseService" resultFormat="xml" method="POST" />
	<db:DatabaseNavigator service="{databaseService}" host="localhost"/>
</mx:Application>

DatabaseNavigator.as

package database.containers
{
	import mx.containers.TabNavigator;
	import mx.controls.Alert;
	import mx.events.FlexEvent;
	import mx.rpc.events.ResultEvent;
	import mx.rpc.http.mxml.HTTPService;

	public class DatabaseNavigator extends TabNavigator
	{
		
		private var _host:String;
		private var _username:String;
		private var _password:String;
		private var _database:String;
		private var _service:HTTPService;
		private var metaData:XMLList;
		private var params:Object;
		
		public function DatabaseNavigator()
		{
			super();
			params = new Object();
			addEventListener(FlexEvent.INITIALIZE, superInitHandler);
		}
		
		public function get host():String {
			return _host;
		}
		
		public function set host(value:String):void {
			_host = value;
		}
		
		public function get username():String {
			return _username;
		}
		
		public function set username(value:String):void {
			_username = value;
		}
		
		public function get password():String {
			return _password;
		}
		
		public function set password(value:String):void {
			_password = value;
		}
		
		public function get database():String {
			return _database;
		}
		
		public function set database(value:String):void {
			_database = value;
		}
		
		public function get service():HTTPService {
			return _service;
		}
		
		public function set service(value:HTTPService):void {
			_service = value;
		}
		
		private function superInitHandler(event:FlexEvent):void {
			params.host = host;
			params.username = username;
			params.password = password;
			params.database = database;
			try {
				if(!service) {
					throw(new Error("Error: Databse service not specified"));
				} else {
					service.addEventListener(ResultEvent.RESULT, serviceResultHandler);
					service.send(params);
				}
			} catch (error:Error) {
				Alert.show(error.message);
			}
		}
		
		private function serviceResultHandler(event:ResultEvent):void {
			Alert.show(event.result.toString());
		}
		
	}
}