导出jar文件后抛出Spring NoSuchBeanDefinitationException

时间:2014-07-25 04:26:13

标签: java spring jar

我有spring项目,我可以在导出jar文件之前从spring上下文中获取spring bean。我导出jar文件并在cmd上运行该jar文件。我得到了NoSuchBeanDefinitationException。该项目找不到春豆。我在spring配置文件中使用了<context:component-scan>。我想知道问题是什么?

修改

在bean中

package com.example.userprofile;

@Service("UserProfileManager")
@Transactional
public class UserProfileManagerImpl implements UserProfileManager{

    @Autowired
    private UserProfileDao userProfileDao;

在弹簧配置文件中

<context:component-scan
        base-package="com.example" />

    <tx:annotation-driven transaction-manager="transactionManager" />
    <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />

    <bean id="transactionManager"
        class="org.springframework.orm.hibernate4.HibernateTransactionManager"
        p:sessionFactory-ref="sessionFactory" />


<bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource"
        p:driverClassName="com.mysql.jdbc.Driver" p:url="jdbc:mysql://localhost:3309/test"
        p:username="root" p:password="root" />

    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation">
            <value>hibernate.cfg.xml</value>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>
    </bean>

当我使用JBoss IDE测试项目时,它完美运行。但是当我将项目导出到jar文件并在cmd上运行时。我收到以下错误。 enter image description here

here是我的项目zip文件。我很抱歉迟到了。

1 个答案:

答案 0 :(得分:1)

虽然问题陈述太宽而无法提供具体答案,但您可以执行以下操作:

  1. 打开您的jar文件以确保您的课程中包含所有注释。
  2. 检查打包的jar以确保您拥有所有需要的库。
  3. 在命令行中检查您的类路径,以确定您是否引用了libs的路径。
  4. 如果您正在使用构建脚本,请检查依赖库的范围,并查看是否导出了所有需要的jar。
  5. 如果没有跳出来,请粘贴整个堆栈跟踪,而不仅仅是片段以及jar的结构,以便我们看到与您相同的大图。