[RESOLVIDO]Servlet acessando methodos da Business?

4 respostas
arthur_roots

Olá estou com uma dúvida muito básica ao meu ver!
Tenho um servlet que é chamada pelo FLEX ,
e ela tem ki fazer uma busca no banco de dados…

Não estou sabendo como fazer essa declaração da BUsiness ou da DAO?

@Autowired
private IProUnidadeBusiness unidadeBusiness;

dessa maneira retorno NULL.

Alguém poderia me ajudar?
grato…

4 Respostas

starkiller

Ta usando spring pra injetar essa dependencia??? Se tiver, posta teu AplicationContext.xml…

C

Boa tarde

Pelo que estou vendo você esta usando Spring para realizar a injeção, você precisa que a instância da Servlet seja vista também pelo contexto do Spring, para que assim ele possa realizar a injeção das dependências, uma forma de fazer isso é colocar no método init da servlet um método que faça com que o Spring tenha acesso a Servlet.

Tente assim:

SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);

Até mais.

arthur_roots

application-context.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- ########################################## -->
<!-- ## Integração do Spring com o Hibernate ## -->
<!-- ########################################## -->

<!-- Arquivos de configuracao *.properties -->
<bean id="propertyConfigurer"
	class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
	<property name="locations">
		<list>
			<value>classpath:/jdbc.properties</value>
		</list>
	</property>
</bean>


<!-- Configuracao de dataSource utilizando pool de conexoes -->
<bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource">

	<property name="driverClassName" value="${database.driver}" />
	<property name="url" value="${database.url}" />
	<property name="username" value="${database.user}" />
	<property name="password" value="${database.pass}" />

	<!-- configuracao do pool DBCP -->
	<property name="initialSize" value="0" />
	<property name="maxActive" value="3" />
	<property name="maxIdle" value="2" />
	<property name="minIdle" value="0" />
	<property name="maxWait" value="-1" />
	<property name="validationQuery" value="select 1" />
	<property name="testOnBorrow" value="true" />
	<property name="testOnReturn" value="false" />
	<property name="testWhileIdle" value="false" />
	<property name="timeBetweenEvictionRunsMillis" value="-1" />
	<property name="numTestsPerEvictionRun" value="3" />
	<property name="minEvictableIdleTimeMillis" value="1800000" /> <!--  30 * 60seg * 1000miliseg = 30min -->

</bean>


<!-- Session Factory junto ao Spring -->
<bean id="sessionFactory" class="br.com.cse.sistemas.projeto.controller.AnnotationOptimizedSessionFactoryBean" dependency-check="none">
	
	<property name="dataSource" ref="datasource" />
	<property name="namingStrategy">
		<bean class="org.hibernate.cfg.DefaultComponentSafeNamingStrategy" />
	</property>


	  
 	<property name="basePackage">
		<value>br.com.cse.sistemas.projeto.entity</value>
 	</property>

	<property name="hibernateProperties">
		<props>
			<prop key="hibernate.dialect">${database.dialect}</prop>
			<prop key="hibernate.current_session_context_class">thread</prop>

			<prop key="hibernate.generate_statistics">false</prop>
			<prop key="hibernate.show_sql">false</prop>
			<prop key="hibernate.format_sql">false</prop>
			 
			
			<!-- 
			<prop key="hibernate.hbm2ddl.auto">update</prop>
			-->
			
			<prop key="hibernate.default_schema">${database.defaultschema}</prop>
			<prop key="hibernate.cache.provider_configuration_file_resource_path">ehcache.xml</prop>
			<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
			<prop key="hibernate.cache">true</prop>
			<prop key="hibernate.cache.use_query_cache">true</prop>
			<prop key="hibernate.cache.use_structured_cache">true</prop>
			<prop key="hibernate.cache.use_second_level_cache">true</prop>
			<prop key="hibernate.cache.use_structured_entries">true</prop>
			<prop key="hibernate.query.substitutions">true '1', false '0'"</prop>

		</props>
	</property>

	<property name="eventListeners">
		<map>
			<entry key="merge">
				<bean
					class="org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener" />
			</entry>
		</map>
	</property>
</bean>



<!-- ######################  Transaction Manager ######################  -->

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
	<property name="sessionFactory" >
		<ref local="sessionFactory" />
	</property>
</bean>



<!--
	Habilita os Services para serem transicionais via a Annotation
	@Transactional
-->
<tx:annotation-driven transaction-manager="transactionManager" />

<!-- ################ COMPONENTES ################## -->

<bean id="conversorFactory"	class="br.com.cse.sistemas.projeto.components.factory.ConversorFactoryController"></bean>

<bean id="transformador" class="br.com.cse.sistemas.projeto.components.transformador.TransformadorController">
	<property name="conversorFactory">
		<ref local="conversorFactory" />
	</property>
</bean>

<!-- ################ SCANS ################## -->

<!-- ============================== AOP DEFINITIONS ================================	-->

<!-- ==================== BUSINESS OBJECT DEFINITIONS  ========================	-->
<!--
	Activates various annotations to be detected in bean classes: Spring's
	@Required and @Autowired, as well as JSR 250's @Resource.
-->
<context:annotation-config />

<!-- Carrega os Beans de Servico -->
<context:component-scan base-package="br.com.cse.sistemas.projeto.business" />

<!-- Carrega os Beans de Servico -->
<context:component-scan base-package="br.com.cse.sistemas.projeto.components" />
<context:component-scan base-package="br.com.cse.sistemas.projeto.controller.security" />
<!-- Carrega os Beans DAO Hibernate -->
<context:component-scan base-package="br.com.cse.sistemas.projeto.dao" />
arthur_roots

vLW GALERA.DEU CERTO!

public void init(ServletConfig config) 
{
    try {
		super.init(config);
	} catch (ServletException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
    SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
  }
Criado 27 de dezembro de 2011
Ultima resposta 27 de dez. de 2011
Respostas 4
Participantes 3