构建路径不完整。找不到javax / servlet / ServletContext的类文件

时间:2013-05-16 01:18:32

标签: java spring hibernate

非常新的java。在CRUD hibernate spring项目(sts)上工作。配置xml文件时,我得到错误“构建路径不完整。无法找到javax / servlet / ServletContext的类文件”,由bean id =“viewResolver”。我如何将它放在构建路径上。欢呼声。

<context:annotation-config />
<context:component-scan base-package="com.ger" />   


<bean id="propertyConfigurer"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
    p:location="/WEB-INF/jdbc.properties" />

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close" p:driverClassName="${jdbc.driverClassName}"
    p:url="${jdbc.databaseurl}" p:username="${jdbc.username}" p:password="${jdbc.password}" />
<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="configLocation">
        <value>classpath:hibernate.cfg.xml</value>
    </property>
    <property name="configurationClass">
        <value>org.hibernate.cfg.AnnotationConfiguration</value>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">${jdbc.dialect}</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property> 
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <property name="suffix" value=".jsp"/>
</bean>
<tx:annotation-driven />
<bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean> 

4 个答案:

答案 0 :(得分:4)

应用似乎缺少来自servlet-api.jarjsp-api.jarel-api.jarj2ee.jarjavaee.jar的其中一个广告罐。而且您不需要将这些复制并粘贴到类路径中。当应用程序部署在服务器上时,您将获得这些。首先,您应该从不手动复制/下载/移动/包含各个servletcontainer特定的库。

如果从IDE运行此项目,请检查服务器配置。

答案 1 :(得分:4)

问题是Eclipse中的JIT与Java JDK的工作方式不同,您可以在命令行上使用Maven这样的Java JDK。要解决此问题,只需将以下内容添加到pom.xml文件中即可。

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.0</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

答案 2 :(得分:4)

  • Windows 8.1,Maven 3.2.3
  • Spring STS 3.6.3.SR1
  • Eclipse的maven集成m2e 1.5.1.20150109
  • Spring IDE插件3.6.3.201411271034-RELEASE等。

好几天都有类似的问题。它说一些依赖项目中缺少一些类(但它们存在),这些类是打开的,它是一个Spring AOP插件(?)问题。关闭项目时,可以在Maven存储库中正确看到依赖关系。从命令行执行maven构建时,仅在STS中没有观察到此问题。

我尝试了各种各样的事情。其中一个,它似乎工作,是用Spring Config编辑器打开applicationcontext.xml文件,转到命名空间选项卡,取消选择上下文命名空间,保存(可能做一些清理),然后选择上下文命名空间,再次保存。祈祷或跳舞你最喜欢的雨舞也应该有帮助:) 我看到这个错误的行是:

<context:component-scan base-package="aaa.bbb" />

答案 3 :(得分:-1)

对于WAR项目,当您没有将* .war文件移动到部署文件夹中时,这是一个常见错误...显然,服务器无法找到它不知道的内容。

如果您使用的是基于Eclipse的IDE,只需在&#34; Servers&#34;中右键单击要部署的服务器。选项卡,然后选择&#34;添加和删除&#34;,然后将.war文件移动到部署文件夹中。重新启动服务器并导航到URL以查看是否可以解决问题。