Duvida como tratar erro com Spring?

1 resposta
P

Olá,

uma duvida o servidor está fora do ar e queria que a mensagem viesse como servidor não inicializado ou algumacoisa parecida…

Conforme abaixo mostrei na tela que " Erro ao buscar conta por numero: 001-X" mas não sei a origem
dessa mensagem o que ocorreu e na verdade o banco está fora do ar …

Tenho que tratar o erro na mão e fazer verificar o erro e dar a emnsagem ou Spring já tem alguma coisa pronta
pra isso ???

Se laguém puder me ajudar …

abs

log4j:WARN No appenders could be found for logger (org.springframework.core.CollectionFactory).
log4j:WARN Please initialize the log4j system properly.
Erro =br.com.globalcode.handson.spring.dao.DAOServiceException: Erro ao buscar conta por numero: 001-X
Erro Message=com.mysql.jdbc.CommunicationsException: Communications link failure

Last packet sent to the server was 0 ms ago.
public static void main(String[] args) {

		try{
			
		
			// Define o arquivo XML de configuracoes pro Spring
			Resource xml = new ClassPathResource(
					"br/com/globalcode/handson/spring/spring-config.xml");
	
			// 3. Inicie o Spring a partir da classe XmlBeanFactory e o arquivo XML
			// indicado pelo resource
	
			BeanFactory factory = new XmlBeanFactory(xml);
	
			// 4. Obtenha uma referencia para o bean com id 'contaDAO'
	
			ContaBancariaDAO contaDAO = (ContaBancariaDAO) factory.getBean("contaDAO");
	
			// Obtem uma conta bancaria
			ContaBancaria conta = contaDAO.findByNumero("001-X");
	
			// Imprime o saldo
			if (conta != null) {
				System.out.println("Numero: " + conta.getNumero() + ", Saldo: "
						+ conta.getSaldo());
			} else {
				System.out.println("Conta com numero 001-X não foi encontrada");
			}
		}catch(DAOServiceException de){
			System.out.println("Erro ="+de);
			System.out.println("Erro Message="+de.getCause());
		}
	}

}

----
public class DAOServiceException extends RuntimeException {

	private static final long serialVersionUID = 1L;

	public DAOServiceException() {
		super();
	}

	public DAOServiceException(String message) {
		super(message);
	}

	public DAOServiceException(Throwable cause) {
		super(cause);
	}

	public DAOServiceException(String message, Throwable cause) {
		super(message, cause);
	}

}
-----

<!-- Datasource JDBC para o banco de dados -->
	<bean id="myDataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource"
		destroy-method="close">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url" value="jdbc:mysql://localhost:3306/spring" />
		<property name="username" value="teste" />
		<property name="password" value="teste" />
	</bean>

1 Resposta

J

Olá

Acredito que capítulo Handling exceptions possa te ajudar, se usar a classe SimpleMappingExceptionResolver para instanciar um bean da seguinte maneira:

<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
		<property name="exceptionMappings">
			<props>
				<prop key="com.sistema.XPTOException">redirect:/erroXPTO.htm</prop>
			</props>
		</property>
	</bean>
Criado 27 de maio de 2009
Ultima resposta 27 de mai. de 2009
Respostas 1
Participantes 2