`
macrabbit
  • 浏览: 231905 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

注解大小写引起远程tomcat7部署错误“Struts has detected an unhandled exception” 解决

 
阅读更多

项目为JPA+SSH,本地开发环境为Myeclipse+tomcat7,其中tomcat7为windows安装版。项目测试没有问题。通过Myeclipse 生成war,然后部署到远程服务器Linux+Tomcat7上,结果出现以下错误

 

Struts Problem Report

Struts has detected an unhandled exception:
Messages: 	

    Table 'db.Role' doesn't exist
    could not execute query
    org.hibernate.exception.SQLGrammarException: could not execute query
    java.lang.reflect.InvocationTargetException
    org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException

File: 	org/hibernate/exception/SQLStateConverter.java
Line number: 	92
Stacktraces
org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException

    org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:238)
    org.apache.struts2.json.JSONWriter.processCustom(JSONWriter.java:171)
    org.apache.struts2.json.JSONWriter.process(JSONWriter.java:161)
    org.apache.struts2.json.JSONWriter.value(JSONWriter.java:127)
    org.apache.struts2.json.JSONWriter.write(JSONWriter.java:95)
    org.apache.struts2.json.JSONUtil.serialize(JSONUtil.java:116)
    org.apache.struts2.json.JSONResult.createJSONString(JSONResult.java:196)
    org.apache.struts2.json.JSONResult.execute(JSONResult.java:170)
    com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:374)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:278)
    org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
    org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:511)
    org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
    org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
   .........................................................................................................................................................
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    java.lang.Thread.run(Thread.java:679)
    

You are seeing this page because development mode is enabled. Development mode, or devMode, enables extra debugging behaviors and reports to 

assist developers. To disable this mode, set:

 

 

反复测试在本机上没有问题,但部署在远程服务器上就出现此问题。

 

最后发现是bean注解大小写问题

 

 

@Entity
@Table(name="Role")
@Component("role")
@Scope("prototype")
public class Role {
.....................
}
 

 

 

数据库中相应表名为“role”

 

“@Table(name="Role")”改为“@Table(name="role")”与数据库表名一致

问题解决。

 

我在windows开发机上用过tomcat6 ,tomcat7以及Myeclipse自带tomcat6,tomcat7都不会出现大小写问题,但在linux 主机上却要区分大小写。

为减少错误,以后保证注解表名和字段名与数据库一致,减少不必要bug.

 

 

 

分享到:
评论

相关推荐

    遇到的问题1

    1. **Struts的未处理异常**: 当出现"Struts has detected an unhandled exception"时,通常是因为在Action类中没有正确注入Service或DAO。解决方法是确保使用了正确的注入方式,如@Autowired或在Struts配置文件中...

    JNA方式调用dll报错:A fatal error has been detected by the Java Runtime Environment:

    标题中的“JNA方式调用dll报错:A fatal error has been detected by the Java Runtime Environment:”是一个典型的Java编程问题,涉及到Java Native Access (JNA) 和动态链接库(dll)的交互。JNA是Java平台的一个...

    ug安装错误无法启动及许可错误大全.doc

    general fault exception 或者 The Graphicswindow has detected an error and is not able to initialize 是 UG 安装错误中的一种。解决方法是检查 ugraf.exe 文件是否正确启动,并检查 ATI 显卡是否支持。 UG ...

    运行UG提示Fatal error detected unable to continue的解决方法

    综上所述,面对“运行UG提示Fatal error detected unable to continue”的问题,通过理解错误信息、分析潜在原因并采取相应的解决措施,可以有效地解决问题,确保UG软件能够正常运行。同时,采取预防措施可以减少...

    git remote: warning: Large files detected.解决方案

    ### git remote: warning: Large files detected. 解决方案 在使用Git进行项目版本管理时,可能会遇到`git remote: warning: Large files detected.`这一警告。这种情况通常发生在尝试将大型文件(如图片、视频或者...

    解决报错heap corruption detected after normal block.zip

    在编程过程中,尤其是在C语言和使用Visual C++(VC)编译器的环境中,"heap corruption detected after normal block"是一个常见的错误提示,它通常表明在程序执行时内存堆出现了损坏。这个错误通常与动态内存分配(如...

    centos7_XFS_报Corruption of in-memory data detected错误.docx

    在Linux系统中,CentOS 7使用XFS文件系统可能会遇到一种特定的错误:“Corruption of in-memory data detected”。这个错误通常表示系统检测到了内存中的数据损坏,这可能是因为不正常关机、硬件故障或者软件问题...

    php iconv() : Detected an illegal character in input string

    上线后报一堆这样的错:iconv() : Detected an illegal character in input string考虑到GB2312字符集比较小,换个大的吧,于是改成GBK:$str = iconv(‘UTF-8’, ‘GBK’, unescape(isset($_GET[‘str’])?...

    Comparing the Struts 1 and Struts 2 Web Application Frameworks

    Struts 1 和 Struts 2 是两个广泛使用的Java Web应用程序框架,它们为开发者提供了构建MVC(模型-视图-控制器)架构的应用程序的方法。本文将深入比较这两个框架,探讨它们的核心特性、优势和差异。 首先,让我们...

    富士施乐C525A故障代码列表

    FIP/Corrective Action Y Toner Life Warning The yellow toner cartridge has reached the set toner supply time limit but it can still work. FIP-1 75 M Toner Life Warning The magenta toner ...FIP-1 7

    linux安装oracle错误解决方法

    在安装 Oracle 10 后,配置网络监听,执行 netca 时,可能会报错 An unexpected exception has been detected in native code outside the VM,这是由于 Java 虚拟机(VM)中的 native 代码抛出异常引起的。解决方案...

    ug安装错误无法启动和许可错误大全.doc

    第五,让我们来看一下general faultexception或者The Graphics window has detected an error and is not able to initialize的错误。解决方法是点电脑左下角--开始--所有程序--Siemens NX 8.0--NX 8.0,然后右击--...

    Circular dependency detected(解决方案).md

    Circular dependency detected(解决方案).md

    Detected memory leaks简单检测方法

    本文档将详细介绍一种简单的内存泄漏检测方法,帮助开发者快速定位并解决Detected memory leaks问题。 #### 内存泄漏基础知识 内存泄漏是指程序中已分配的堆内存由于某些原因未能被释放或无法访问,导致这部分内存...

    MyEclipse内存不足问题

    标题与描述概述的知识点主要集中在解决MyEclipse内存不足的问题上,这通常发生在处理大型项目或资源密集型任务时。以下是对这些知识点的详细解析: ### 修改eclipse.ini 在MyEclipse的安装目录下,存在一个名为`...

    Tomcat7、Chrome下web socket的一个例子

    标题中的“Tomcat7、Chrome下web socket的一个例子”揭示了我们要探讨的核心技术点,即在Tomcat 7服务器上使用Web Socket与Google Chrome浏览器进行实时双向通信的应用示例。Web Socket是HTML5引入的一种新的通信...

    Fluent中常见报错及解决办法

    在使用 Fluent 进行流体动力学仿真时,可能会遇到各种错误和警告,这些错误可能影响计算的稳定性和结果的准确性。以下是一些常见的 Fluent 报错及其解决办法: 1. **双击无法打开 cas 或者路径出现乱码**: - 这个...

    蓝屏相关的解决方案.txt

    ### 蓝屏相关的解决方案 #### 一、蓝屏死机概述 蓝屏死机(Blue Screen of Death,简称BSoD)是微软Windows操作系统在遇到严重错误且无法自行恢复时所显示的一种屏幕图像。这种错误通常涉及到硬件或驱动程序问题,...

    USB Device Over Current Status Detected维修思路

    ### USB Device Over Current Status Detected 维修思路 在IT硬件维护领域,“USB Device Over Current Status Detected”是一个常见的问题,特别是对于使用华硕主板的用户来说。这个问题通常表现为系统提示“USB ...

Global site tag (gtag.js) - Google Analytics