Pessoal estou comecando a mexer com spring para isso fui nesse site: http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensource-para-sistemas-web-parte-2-final/
e peguei a apostila q se encontra aqui:
Primeiro de tudo, leia este artigo feito pelo Phillip Calçado (Shoes)
apostila-spring.pdf
Valeu Ebertom pela hospedagem! =)
legal ate ae beleza. estou tentando fazer o exercicio da pagina 29 Advice tipo Around..
perfeito.. eu fiz tudo certinho
segue as classes
UsuarioDao.classpublic class UsuarioDao {
public void salvar(Usuario usuario, Conexao conexao){
String sql = "INSERT INTO USUARIOS VALUES(" + usuario.getLogin() + ")";
System.out.println("DAO: Executando SQL=[" + sql + "]");
conexao.executar(sql);
}
}
class Usuario {
public Usuario(String nome) {
}
public String getLogin() {
return " fabioebner";
}
}
class Conexao {
public void executar(String sql) {
System.out.println("executado");
}
boolean isAberta() {
return false;
}
void abrir() {
System.out.println("abrir");
}
void fechar() {
System.out.println("fechar");
}
}
public class VerificaConexaoDisponivelAdvice implements MethodInterceptor {
public Object invoke(MethodInvocation invocacao) throws Throwable {
Object[] argumentos = invocacao.getArguments();
// pega a conexão passada como parâmetro
Conexao conexao = (Conexao) argumentos[1];
// se não existe conexão, retorne
if (conexao == null) {
System.out.println("Nenhuma conexão passada");
return null;
} else {
// se a conexão existe mas não está aberta, abra-a
if (!conexao.isAberta()) {
System.out.println("Conexão fechada, abrindo...");
conexao.abrir();
}
// execute o método
try {
System.out.println("Invocando...");
invocacao.proceed();
} catch (Throwable e) {
// problemas na execução do método!
e.printStackTrace();
} finally {
//Fechando conexão usada
System.out.println("Fechando Conexão...");
conexao.fechar();
}
// este método não tem retorno (void)
return null;
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="usuarioDaoTarget" class="around.UsuarioDao" />
<bean id="usuarioDao" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="interceptorNames">
<value>verificaConexaoDisponivelAdvice</value>
</property>
<property name="target" ref="usuarioDaoTarget" />
</bean>
<bean id="verificaConexaoDisponivelAdvice" class="around.VerificaConexaoDisponivelAdvice" />
</beans>
public class executarSpring {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/around/applicationContext.xml");
UsuarioDao dao = (UsuarioDao) applicationContext.getBean("usuarioDao");
Usuario usuario = new Usuario("pcalcado");
// conexão fechada...
System.out.println("Primeiro exemplo");
Conexao conexao = new Conexao();
dao.salvar(usuario, conexao);
System.out.println("-------------------------");
// sem conexão...
System.out.println("Segundo exemplo");
dao.salvar(usuario, null);
System.out.println("-------------------------");
System.out.println("Terceiro exemplo");
Conexao conexao2 = new Conexao();
conexao2.abrir();
dao.salvar(usuario, conexao2);
}
}
td isso no netbeans.. fui la com o botao direito em library Add, adicionei a do Spring Framework 2.5 q vem com ele.. perfeito
na hora de rodar acontece o seguinte erro:
5/07/2009 16:16:11 org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@14d3343: display name [org.springframework.context.support.ClassPathXmlApplicationContext@14d3343]; startup date [Wed Jul 15 16:16:11 BRT 2009]; root of context hierarchy
15/07/2009 16:16:11 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [around/applicationContext.xml]
15/07/2009 16:16:11 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
INFO: Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext@14d3343]: org.springframework.beans.factory.support.DefaultListableBeanFactory@127734f
15/07/2009 16:16:11 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@127734f: defining beans [usuarioDaoTarget,usuarioDao,verificaConexaoDisponivelAdvice]; root of factory hierarchy
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'usuarioDao': FactoryBean threw exception on object creation; nested exception is java.lang.NoClassDefFoundError: org/objectweb/asm/Type
at org.springframework.beans.factory.support.AbstractBeanFactory$3.run(AbstractBeanFactory.java:1310)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectFromFactoryBean(AbstractBeanFactory.java:1299)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1272)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:206)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:170)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:883)
at around.executarSpring.main(executarSpring.java:18)
Caused by: java.lang.NoClassDefFoundError: org/objectweb/asm/Type
at net.sf.cglib.core.TypeUtils.parseType(TypeUtils.java:180)
at net.sf.cglib.core.KeyFactory.(KeyFactory.java:66)
at net.sf.cglib.proxy.Enhancer.(Enhancer.java:69)
at org.springframework.aop.framework.Cglib2AopProxy.createEnhancer(Cglib2AopProxy.java:225)
at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:152)
at org.springframework.aop.framework.ProxyFactoryBean.getProxy(ProxyFactoryBean.java:351)
at org.springframework.aop.framework.ProxyFactoryBean.getSingletonInstance(ProxyFactoryBean.java:306)
at org.springframework.aop.framework.ProxyFactoryBean.getObject(ProxyFactoryBean.java:232)
at org.springframework.beans.factory.support.AbstractBeanFactory$3.run(AbstractBeanFactory.java:1304)
... 7 more
Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 16 more
Java Result: 1
alguem sabe o pq???
pelo q eu andei pesquisando parece q falta o jar cglib2 porem no meu library do netbeans esta la o lazarento spring framework - cglib-2.2.jar
obrigado