7

对java非常陌生。从事 CRUD hibernate spring 项目(sts)。配置 xml 文件时,我收到错误“构建路径不完整。找不到 javax/servlet/ServletContext 的类文件”,由 thebean 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

4 回答 4

4
  • Windows 8.1、Maven 3.2.3
  • 弹簧 STS 3.6.3.SR1
  • Eclipse m2e 1.5.1.20150109 的 Maven 集成
  • Spring IDE 插件 3.6.3.201411271034-RELEASE 等

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

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

<context:component-scan base-package="aaa.bbb" />
于 2015-03-27T14:34:17.317 回答
4

应用程序似乎缺少servlet-api.jar, jsp-api.jar, el-api.jar, j2ee.jar,中的一个罐子javaee.jar。而且您不需要将它们复制并粘贴到类路径中。当应用程序部署在服务器上时,您将获得这些。首先,您应该永远不要手动复制/下载/移动/包含各个 servletcontainer 特定的库。

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

于 2013-05-16T06:04:17.173 回答
4

问题在于 Eclipse 中的 JIT 与 Java JDK 的工作方式不同,Java JDK 可以在命令行上使用 Maven 之类的工具。要解决此问题,只需将以下内容添加到您的 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>
于 2014-05-02T02:39:13.877 回答
-1

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

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

于 2014-03-10T03:30:05.980 回答