Page 1 of 3 123 LastLast
Results 1 to 10 of 22

Thread: Formal Unbound in Pointcut

  1. #1

    Red face Formal Unbound in Pointcut

    I'm getting the above error when I add the AOP elements to my config files. I'm brand new to Spring, so it's likely something simple. Would appreciate it if anyone could point out what's wrong.

    The blankety-blank forum won't let me post the config files because it thinks the URI's are links to other sites. If someone knows how I can post the config files, let me know.
    ______________________

    The full error message is:

    Exception in thread "main" org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with name 'dataSource': BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with name 'org.springframework.aop.aspectj.AspectJPointcutAd visor#0': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationExcepti on: Could not instantiate bean class [org.springframework.aop.aspectj.AspectJPointcutAdv isor]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: error at ::0 formal unbound in pointcut
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory$1.run(AbstractAutowireC apableBeanFactory.java:405)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.createBean(AbstractAuto wireCapableBeanFactory.java:380)
    at org.springframework.beans.factory.support.Abstract BeanFactory$1.getObject(AbstractBeanFactory.java:2 64)
    at org.springframework.beans.factory.support.DefaultS ingletonBeanRegistry.getSingleton(DefaultSingleton BeanRegistry.java:220)
    at org.springframework.beans.factory.support.Abstract BeanFactory.doGetBean(AbstractBeanFactory.java:261 )
    at org.springframework.beans.factory.support.Abstract BeanFactory.getBean(AbstractBeanFactory.java:185)
    at org.springframework.beans.factory.support.Abstract BeanFactory.getBean(AbstractBeanFactory.java:164)
    at org.springframework.beans.factory.support.DefaultL istableBeanFactory.preInstantiateSingletons(Defaul tListableBeanFactory.java:423)
    at org.springframework.context.support.AbstractApplic ationContext.finishBeanFactoryInitialization(Abstr actApplicationContext.java:729)
    at org.springframework.context.support.AbstractApplic ationContext.refresh(AbstractApplicationContext.ja va:381)
    at org.springframework.context.support.ClassPathXmlAp plicationContext.<init>(ClassPathXmlApplicationCon text.java:139)
    at org.springframework.context.support.ClassPathXmlAp plicationContext.<init>(ClassPathXmlApplicationCon text.java:93)
    at Test.main(Test.java:24)
    Caused by: org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with name 'org.springframework.aop.aspectj.AspectJPointcutAd visor#0': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationExcepti on: Could not instantiate bean class [org.springframework.aop.aspectj.AspectJPointcutAdv isor]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: error at ::0 formal unbound in pointcut
    at org.springframework.beans.factory.support.Construc torResolver.autowireConstructor(ConstructorResolve r.java:243)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.autowireConstructor(Abs tractAutowireCapableBeanFactory.java:923)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.createBeanInstance(Abst ractAutowireCapableBeanFactory.java:833)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.doCreateBean(AbstractAu towireCapableBeanFactory.java:440)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory$1.run(AbstractAutowireC apableBeanFactory.java:409)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.createBean(AbstractAuto wireCapableBeanFactory.java:380)
    at org.springframework.beans.factory.support.Abstract BeanFactory$1.getObject(AbstractBeanFactory.java:2 64)
    at org.springframework.beans.factory.support.DefaultS ingletonBeanRegistry.getSingleton(DefaultSingleton BeanRegistry.java:220)
    at org.springframework.beans.factory.support.Abstract BeanFactory.doGetBean(AbstractBeanFactory.java:261 )
    at org.springframework.beans.factory.support.Abstract BeanFactory.getBean(AbstractBeanFactory.java:185)
    at org.springframework.beans.factory.support.Abstract BeanFactory.getBean(AbstractBeanFactory.java:164)
    at org.springframework.aop.framework.autoproxy.BeanFa ctoryAdvisorRetrievalHelper.findAdvisorBeans(BeanF actoryAdvisorRetrievalHelper.java:87)
    at org.springframework.aop.framework.autoproxy.Abstra ctAdvisorAutoProxyCreator.findCandidateAdvisors(Ab stractAdvisorAutoProxyCreator.java:98)
    at org.springframework.aop.aspectj.autoproxy.AspectJA wareAdvisorAutoProxyCreator.shouldSkip(AspectJAwar eAdvisorAutoProxyCreator.java:105)
    at org.springframework.aop.framework.autoproxy.Abstra ctAutoProxyCreator.postProcessBeforeInstantiation( AbstractAutoProxyCreator.java:266)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.applyBeanPostProcessors BeforeInstantiation(AbstractAutowireCapableBeanFac tory.java:789)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.resolveBeforeInstantiat ion(AbstractAutowireCapableBeanFactory.java:760)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory$1.run(AbstractAutowireC apableBeanFactory.java:399)
    ... 13 more
    Caused by: org.springframework.beans.BeanInstantiationExcepti on: Could not instantiate bean class [org.springframework.aop.aspectj.AspectJPointcutAdv isor]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: error at ::0 formal unbound in pointcut
    at org.springframework.beans.BeanUtils.instantiateCla ss(BeanUtils.java:111)
    at org.springframework.beans.factory.support.SimpleIn stantiationStrategy.instantiate(SimpleInstantiatio nStrategy.java:87)
    at org.springframework.beans.factory.support.Construc torResolver.autowireConstructor(ConstructorResolve r.java:237)
    ... 31 more
    Caused by: java.lang.IllegalArgumentException: error at ::0 formal unbound in pointcut
    at org.aspectj.weaver.tools.PointcutParser.parsePoint cutExpression(PointcutParser.java:316)
    at org.springframework.aop.aspectj.AspectJExpressionP ointcut.buildPointcutExpression(AspectJExpressionP ointcut.java:205)
    at org.springframework.aop.aspectj.AspectJExpressionP ointcut.checkReadyToMatch(AspectJExpressionPointcu t.java:192)
    at org.springframework.aop.aspectj.AspectJExpressionP ointcut.getMethodMatcher(AspectJExpressionPointcut .java:178)
    at org.springframework.aop.aspectj.AbstractAspectJAdv ice.buildSafePointcut(AbstractAspectJAdvice.java:1 89)
    at org.springframework.aop.aspectj.AspectJPointcutAdv isor.<init>(AspectJPointcutAdvisor.java:51)
    at sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInsta nce(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Construc tor.java:494)
    at org.springframework.beans.BeanUtils.instantiateCla ss(BeanUtils.java:96)
    ... 33 more

  2. #2
    Join Date
    Jun 2006
    Location
    The Netherlands
    Posts
    13,624

    Default

    post your configuration, remove any @ (replace with {at} ) and remove links.

    When posting code/stacktraces use the [ code][/code ] tags that way it remains readable.

    We had to restrict posting urls/@ to prevent spam runs, so sorry for the minor inconvenience, however it should be ok after 5 posts.
    Marten Deinum
    Java Consultant / Pragmatist / Open Source Enthousiast / Author


    Pro Spring MVC: With Web Flow
    Conspect

    Have you read the reference guide.
    Use the [ code ] tags, young padawan

  3. #3

    Wink Config Files

    This is extremely frustrating. The forum software claims I have URL's in the post, but I've removed anything that looks like a URL, & it STILL complains. Even worse, it won't tell me WHAT part it objects to.

    Is there a way ATTACH the config files? It won't accept *.xml extensions.

    If I can't show the config files, this forum is pretty useless. Not a good introduction to Spring, so far.

    Any suggestions would be greatly appreciated.

  4. #4

    Default Dummy 1

    I'm going to try entering some dummy posts to get past the "5 posts" threshold & see if it will let me submit the config files after that.

  5. #5

    Default Dummy 2

    Trying to get to the 5-posts level

  6. #6

    Default Dummy 3

    Trying to get to the 5-post level.

  7. #7

    Default 6th Attempt.

    I've made 5 posts now, so hopefully this will get through.
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans 
       xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jee="http://www.springframework.org/schema/jee"
    	xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.springframework.org/schema/jee   http://www.springframework.org/schema/jee/spring-jee-2.5.xsd"
    >
       <jee:jndi-lookup id="dataSource" 
          jndi-name="com/uprr/app/tns/tns_PoolDS" 
          resource-ref="true"
          default-ref="developmentDataSource"
       />
    
    	<bean id="developmentDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    		<property name="driverClassName" value="oracle.jdbc.OracleDriver" />
    		<property name="url" value="jdbc:oracle:thin:@dev091.oracle.uprr.com:1521:dev091" />
    		<property name="username" value="dtns999" />
    		<property name="password" value="tns_dev08" />
    	</bean>
       
    </beans>
    ___________________
    
    <?xml version="1.0" encoding="UTF-8"?>
    <beans 
       xmlns="http://www.springframework.org/schema/beans"
       xmlns:aop="http://www.springframework.org/schema/aop"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="
          http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
          http://www.springframework.org/schema/aop   http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
       "
       default-autowire="byName"
    >
    	<bean id="maintenanceTransactionTypeDao" class="com.uprr.db.dao.spring.stats.MaintenanceTransactionTypeDAO" />
       <bean id="maintenanceItemTypeDao"        class="com.uprr.db.dao.spring.stats.MaintenanceItemTypeDAO"        />
       <bean id="maintenanceTransactionDao"     class="com.uprr.db.dao.spring.stats.MaintenanceTransactionDAO"     />
       <bean id="throwAdvice"                   class="com.uprr.aop.ThrowAdvice"                                   />
     
       <aop:config>
    
          <aop:pointcut id="anyMethod" expression="execution(* *(..))" /> 
          
          <aop:aspect ref="throwAdvice">
             <aop:after-throwing throwing="error" pointcut-ref="anyMethod" method="afterThrowing" />
          </aop:aspect>
    
       </aop:config>
        
    </beans>
    __________________
    
    import java.util.Iterator;
    
    import org.apache.log4j.Logger;
    import org.apache.log4j.xml.DOMConfigurator;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.uprr.db.dao.spring.stats.MaintenanceItemTypeDAO;
    import com.uprr.db.dao.spring.stats.MaintenanceTransactionTypeDAO;
    
    //----------------------------------------------------------------------------------------------
    public class Test
    {
    public static final Logger logger = Logger.getLogger("com.uprr.tns.test");
    
    //----------------------------------------------------------------------------------------------
    public static void main(final String[] args) throws Exception
    {
    	DOMConfigurator.configure("log4j-test.xml");
    	/**
    	 * In production:
    	 * getRootLogger().setLevel(Level.ERROR);
    	 */
    	final String configFiles[] = {"spring-test.xml", "spring-tns-api.xml"};
    	ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(configFiles);
    
    	testTransactionTypes(context);
    	testItemTypes(context);
    }
    //----------------------------------------------------------------------------------------------
    public static void testItemTypes(ClassPathXmlApplicationContext context) throws Exception
    {
    	MaintenanceItemTypeDAO dao = MaintenanceItemTypeDAO.getBean(context);
    	Iterator iterator = dao.getAllTypes().iterator();
    	while (iterator.hasNext()) {
    		logger.info(iterator.next());
    	}
    	final Integer systemNumber = new Integer(3);
    	logger.info("Item type # " + systemNumber + " = " + dao.getDescription(systemNumber));
    }
    //----------------------------------------------------------------------------------------------
    public static void testTransactionTypes(ClassPathXmlApplicationContext context) throws Exception
    {
    	MaintenanceTransactionTypeDAO dao = MaintenanceTransactionTypeDAO.getBean(context);
    	Iterator iterator = dao.getAllTypes().iterator();
    	while (iterator.hasNext()) {
    		logger.info(iterator.next());
    	}
    	final Integer systemNumber = new Integer(3);
    	logger.info("Transaction type # " + systemNumber + " = " + dao.getDescription(systemNumber));
    }
    //----------------------------------------------------------------------------------------------
    }

  8. #8
    Join Date
    Jun 2006
    Location
    The Netherlands
    Posts
    13,624

    Default

    Please use multiple code blocks instead of dumping everything into one large one. Next to that you didn't include you advice/aspect...
    Marten Deinum
    Java Consultant / Pragmatist / Open Source Enthousiast / Author


    Pro Spring MVC: With Web Flow
    Conspect

    Have you read the reference guide.
    Use the [ code ] tags, young padawan

  9. #9

    Default Code Blocks Divided Up

    Hopefully this is more readable:

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans 
       xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jee="http://www.springframework.org/schema/jee"
    	xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.springframework.org/schema/jee   http://www.springframework.org/schema/jee/spring-jee-2.5.xsd"
    >
       <jee:jndi-lookup id="dataSource" 
          jndi-name="com/uprr/app/tns/tns_PoolDS" 
          resource-ref="true"
          default-ref="developmentDataSource"
       />
    
    	<bean id="developmentDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    		<property name="driverClassName" value="oracle.jdbc.OracleDriver" />
    		<property name="url" value="jdbc:oracle:thin:@dev091.oracle.uprr.com:1521:dev091" />
    		<property name="username" value="dtns999" />
    		<property name="password" value="xxx" />
    	</bean>
       
    </beans>
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans 
       xmlns="http://www.springframework.org/schema/beans"
       xmlns:aop="http://www.springframework.org/schema/aop"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="
          http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
          http://www.springframework.org/schema/aop   http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
       "
       default-autowire="byName"
    >
    	<bean id="maintenanceTransactionTypeDao" class="com.uprr.db.dao.spring.stats.MaintenanceTransactionTypeDAO" />
       <bean id="maintenanceItemTypeDao"        class="com.uprr.db.dao.spring.stats.MaintenanceItemTypeDAO"        />
       <bean id="maintenanceTransactionDao"     class="com.uprr.db.dao.spring.stats.MaintenanceTransactionDAO"     />
       <bean id="throwAdvice"                   class="com.uprr.aop.ThrowAdvice"                                   />
     
       <aop:config>
    
          <aop:pointcut id="anyMethod" expression="execution(* *(..))" /> 
          
          <aop:aspect ref="throwAdvice">
             <aop:after-throwing throwing="error" pointcut-ref="anyMethod" method="afterThrowing" />
          </aop:aspect>
    
       </aop:config>
       
        
    </beans>
    Code:
    import java.util.Iterator;
    
    import org.apache.log4j.Logger;
    import org.apache.log4j.xml.DOMConfigurator;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.uprr.db.dao.spring.stats.MaintenanceItemTypeDAO;
    import com.uprr.db.dao.spring.stats.MaintenanceTransactionTypeDAO;
    
    //----------------------------------------------------------------------------------------------
    public class Test
    {
    public static final Logger logger = Logger.getLogger("com.uprr.tns.test");
    
    //----------------------------------------------------------------------------------------------
    public static void main(final String[] args) throws Exception
    {
    	DOMConfigurator.configure("log4j-test.xml");
    	/**
    	 * In production:
    	 * getRootLogger().setLevel(Level.ERROR);
    	 */
    	final String configFiles[] = {"spring-test.xml", "spring-tns-api.xml"};
    	ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(configFiles);
    
    	testTransactionTypes(context);
    	testItemTypes(context);
    }
    //----------------------------------------------------------------------------------------------
    public static void testItemTypes(ClassPathXmlApplicationContext context) throws Exception
    {
    	MaintenanceItemTypeDAO dao = MaintenanceItemTypeDAO.getBean(context);
    	Iterator iterator = dao.getAllTypes().iterator();
    	while (iterator.hasNext()) {
    		logger.info(iterator.next());
    	}
    	final Integer systemNumber = new Integer(3);
    	logger.info("Item type # " + systemNumber + " = " + dao.getDescription(systemNumber));
    }
    //----------------------------------------------------------------------------------------------
    public static void testTransactionTypes(ClassPathXmlApplicationContext context) throws Exception
    {
    	MaintenanceTransactionTypeDAO dao = MaintenanceTransactionTypeDAO.getBean(context);
    	Iterator iterator = dao.getAllTypes().iterator();
    	while (iterator.hasNext()) {
    		logger.info(iterator.next());
    	}
    	final Integer systemNumber = new Integer(3);
    	logger.info("Transaction type # " + systemNumber + " = " + dao.getDescription(systemNumber));
    }
    //----------------------------------------------------------------------------------------------
    }

  10. #10
    Join Date
    Jun 2006
    Location
    The Netherlands
    Posts
    13,624

    Default

    Quote Originally Posted by mdeinum
    Please use multiple code blocks instead of dumping everything into one large one. Next to that you didn't include you advice/aspect...
    This still holds . Without your advice it is hard to tell, just one pointer you probably want to use the spring test classes for what you are doing.
    Marten Deinum
    Java Consultant / Pragmatist / Open Source Enthousiast / Author


    Pro Spring MVC: With Web Flow
    Conspect

    Have you read the reference guide.
    Use the [ code ] tags, young padawan

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •