我尝试在axis2上创建Web服务(没有ServletContext)。我有正常运行的代码(Spring + Hebirnate),并尝试按照this article和this one中的描述将其放入AAR中。除了休眠之外,所有工作都很好。
我有:
<bean id="dataSourceCommon" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.OracleDriver" />
<property name="url" value="jdbc:oracle:oci:@xxxx" />
<property name="username" value="xxxx" />
<property name="password" value="xxxx" />
<property name="maxActive" value="10" />
<property name="defaultAutoCommit" value="false" />
</bean>
<bean id="hibernateSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSourceCommon" />
<property name="mappingLocations">
<value>classpath:xxxx.hbm.xml</value>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle10gDialect
</prop>
</props>
</property>
</bean>
<bean id="hibernateDaoSupport" abstract="true"
class="org.springframework.orm.hibernate3.support.HibernateDaoSupport">
<property name="sessionFactory" ref="hibernateSessionFactory" />
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="hibernateSessionFactory" />
</bean>
此文件位于AAR的根目录中。
我将此aar-file复制到c:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\axis2\WEB-INF\services
,但如果我尝试运行Tomcat服务器,则会收到错误:
org.springframework.beans.factory.BeanCreationException:
使用名称创建bean时出错 'hibernateSessionFactory'中的定义 类路径资源 [xxxx.context.xml]:实例化 豆子失败了;嵌套异常是 org.springframework.beans.BeanInstantiationException: 无法实例化bean类 [org.springframework.orm.hibernate3.LocalSessionFactoryBean]: 构造函数抛出异常;嵌套 例外是 java.lang.NoClassDefFoundError ... 引起:java.lang.ClassNotFoundException: org.hibernate.cfg.Configuration
我的错误在哪里?
答案 0 :(得分:1)
如果错误是
java.lang.ClassNotFoundException:org.hibernate.cfg.Configuration
然后错误的是你没有在你的webapp(WEB-INF/lib
)的claspath中包含Hibernate类(hibernate.jar等)。