当前位置: 首页 > 面试题库 >

Struts Spring和Hibernate集成在在线考试中

卫骏
2023-03-14
问题内容

实际上,我正在尝试将Struts Spring和Hibernate集成到在线考试系统中。在运行项目时,它会引发以下错误

Http Status 404 - online Exam/registration.jsp

Description: The requested resource is not available.

在控制台中,出现以下内容,

INFO: TLD skipped. URI: /struts-tags is already defined
Sep 10, 2013 9:14:28 PM org.apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
Sep 10, 2013 9:14:28 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class org.apache.tiles.extras.complete.CompleteAutoloadTilesListener
java.lang.NoSuchMethodError: org.apache.tiles.startup.TilesInitializer.initialize(Lorg/apache/tiles/request/ApplicationContext;)V
    at org.apache.tiles.web.startup.AbstractTilesListener.contextInitialized(AbstractTilesListener.java:53)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:724)

Sep 10, 2013 9:14:28 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
Sep 10, 2013 9:14:31 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
Sep 10, 2013 9:14:31 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/iSAS] startup failed due to previous errors
Sep 10, 2013 9:14:31 PM org.apache.catalina.core.ApplicationContext log
INFO: Closing Spring root WebApplicationContext
Sep 10, 2013 9:14:31 PM org.apache.catalina.core.StandardContext listenerStop
SEVERE: Exception sending context destroyed event to listener instance of class org.apache.tiles.extras.complete.CompleteAutoloadTilesListener
java.lang.NoSuchMethodError: org.apache.tiles.startup.TilesInitializer.destroy()V
    at org.apache.tiles.web.startup.AbstractTilesListener.contextDestroyed(AbstractTilesListener.java:63)
    at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4980)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5626)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:724)

Sep 10, 2013 9:14:31 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/iSAS] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
Sep 10, 2013 9:14:31 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-apr-8080"]
Sep 10, 2013 9:14:31 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-apr-8009"]
Sep 10, 2013 9:14:31 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 11274 ms

web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">


    <description>iSAS</description>

    <filter>
        <filter-name>struts2</filter-name>
    <!--<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> -->
           <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <welcome-file-list>
        <welcome-file>registration.jsp</welcome-file>
    </welcome-file-list>

 <jsp-config>
        <taglib>
            <taglib-uri>struts-tags.tld</taglib-uri>
            <taglib-location>/WEB-INF/tlds/struts-tags.tld</taglib-location>            
        </taglib>
        <taglib>
            <taglib-uri>tiles-jsp.tld</taglib-uri>
            <taglib-location>/WEB-INF/tlds/tiles-jsp.tld</taglib-location>          
        </taglib>   
    </jsp-config>

    <context-param>
        <param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name>
        <param-value>/WEB-INF/tiles.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.apache.tiles.extras.complete.CompleteAutoloadTilesListener</listener-class>
    </listener>

    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener> 
    <listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener> 
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>

</web-app>

struts.xml

<struts>

    <constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />
    <constant name="struts.ui.theme" value="simple" />
    <constant name="struts.devMode" value="true" />

    <package name="default" extends="struts-default">       
        <result-types>
            <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/>
        </result-types>

        <action name="userRegistration_*" method="{1}" class="userRegistration">
            <result name="SUCCESS" type="tiles">onlineexam.user.registration</result>
            <result name="ERROR" type="tiles">onlineexam.errorPage</result>
            <result name="input" type="tiles">onlineexam.user.registration</result>
        </action>

    </package>
</struts>

但是我已经上传了所有需要的jar。但是在apache tomcat 7.0.42中运行时,仍然给我以下错误。我正在使用Eclipse
Kepler。请帮助我的朋友。


问题答案:

更新到Tiles 2.2。

Spring 3.0要求Tiles 2.1.2或更高版本,并明确支持Tiles 2.2。

缺少的方法:TilesInitializer.destroy()存在@since 2.2.0

或者,也许您忘记部署其中一个瓦罐,或者您使用的是其他版本

  • tiles-core
  • Tiles-api
  • tiles-jsp
  • tile-servlet


 类似资料:
  • 以下测验提供了与Hibernate Framework相关的多项选择题(MCQ)。 您必须阅读所有给定的答案并单击正确的答案。 如果您不确定答案,则可以使用“ Show Answer按钮Show Answer 。 您可以使用“ Next Quiz按钮在Next Quiz中检查新的问题集。 问题1 - JDBC代表什么? A - Java DB连接 B - Java数据库连接 C - Java数据绑

  • 我通过实现MessageListener接口并设置SimpleMessageListenerContainer编写了RabbitMQ消费者。当我手动测试它时,它运行良好。现在我想编写一个联调: 创建消息 将消息推送到我的RabbitMQ服务器 等待消息被我的MessageListener实现消耗 测试做了一些断言,一旦一切都完成了 然而,由于我的MessageListener是在一个单独的线程中运

  • 主要内容:数据库设置:,Hibernate的配置:,环境设置:,Hibernate 类:,动作类:,创建视图文件:,Struts 配置:Hibernate是一个高性能的对象/关系持久性和查询服务许可下的开源GNU通用公共许可证(LGPL),并免费下载。在这一章中,我们要学习如何实现Struts2与Hibernate集成。如果你不熟悉与Hibernate,那么可以查看我们的Hibernate教程。 数据库设置: 在本教程中,我会使用“struts2_tutorial”MySQL数据库。我连接到我的

  • 整体介绍 此文档描述 无埋点SDK 极速接入配置方式;如果希望使用gradle方式接入无埋点SDK,请参考可视化圈选接入。如果您使用的是手动埋点SDK版本,请参考手动埋点SDK gradle接入。 百度移动统计团队推出的全新极速埋点方案,一步完成SDK安装,省去了传统接入方案的繁琐步骤。 传统接入方案(繁琐) 一般开发者接入统计SDK需要至少完成四个步骤(配置 gradle 下载SDK;修改 An

  • null 如何在transform()步骤中添加Jaxb2Marshaller?

  • 我对hibernate有点陌生,所以我从一些简单的东西开始。 根据F.I.R.S.T测试原则,单元测试必须是I-隔离的。我试图使用注释将其应用于存储库层(Hibernate\JPA)的集成测试: 但是,只要在一个事务中执行两个方法,hibernate实际上并不执行它们(据我所知)--至少日志中没有行。 我看到了一个自带并调用其方法的解决方案。但我不喜欢它,因为我试图在不绑定Hibernate\JP