工作总结销售工作中遇到的问题小问题

J2EE开发工作中遇到的异常问题及解决方法总结 - rchm8519的专栏
- 博客频道 - CSDN.NET
1129人阅读
本人做了近三年的J2EE开发工作,主要架构为SSH+MySQL+Tomcat,项目中也用到了一些第三方的开源工具或者中间件,工作中难免会遇到各种各样的异常问题,对于一些给我造成比较大的麻烦的问题,我习惯将他们和解决方案记录下来,以免下次遇到时再次东搜西找。这些问题有些可能并不是多难的技术问题,而只是容易被我们忽略而不易察觉的小问题,但是正因为不易察觉,它们往往会耗费我们比较多的时间,这点我相信很多同行都会有同感,因此,我觉得这个习惯相当有用,建议做开发的朋友都有一个自己的异常记录,并能够分项出来,惠及大家。以下是我工作中遇到过的一些异常,共36种:
1.&&& HttpClient I/O exception:
:I/O exceptioncaught when processing request:
Connection timed out:connect
错误原因:IP不正确。
解决方法:改正IP
2.&&& Ambiguous handler methods mapped
错误信息:java.lang.IllegalStateException:
for HTTP path '/lowpressure.json'
Ambiguous:模糊不清的,有歧义的
错误原因:项目中存在两个相同的RequestMapping路径
解决方法:修改其中一个名称
3.&&& session read-only
错误信息:org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode(FlushMode.NEVER/MANUAL): Turn your Session MIT/AUTO orremove 'readOnly' marker from transaction
definition.
错误原因:开启了openSessionInViewFilter,而这种session的默认模式是只读。
解决方法:为其设置初始化参数singleSession=false。
&init-param&
&&&&&&&&&&&&& &param-name&&/param-name&
&&&&&&&&&&&&& &param-value&false&/param-value&
&&& &/init-param&
4.&&& org/hibernate/exception/
错误信息:
javax.servlet.ServletException:java.lang.NoClassDefFoundError:org/hibernate/exception/DataException
Caused by: java.lang.NoClassDefFoundError:org/hibernate/exception/DataException
错误原因:不明。好像是因为开启了(你可能不信,但确实是这样!)
解决方法:关闭openSessionInViewFilter
5.&&& Initializing connection provider:
异常信息:
Tomcat启动时长时间停留在此处
原因:不明!
解决方法:自愈!
错误信息:
uncaught exception: Highcharts error #13:
highcharts画趋势图时firebug捕捉到异常!
错误原因:highchairs官网给出原因
Rendering div not found
This error occurs if the
option ismisconfugured so that Highcharts is unable to find the HTML element to renderthe chart in.
解决方法:配置chart.renderTo为一个存在的div的id。
7.&&& C3p0获取连接失败
错误原因:客户端从连接池中获取连接超时,通常是因为连接池中连接达到最大数量,且都被取走还未归还,出项这一现象的原因有两种:一是连接最大数配置过小不够并发使用,二是程序中存在连接泄露,有使用后未归还处。
解决方法:排查有无连接未close,若没有则增加最大连接数量!
8.&&& org.hibernate.NonUniqueObjectException
:a differentobject with the same identifier value was already associated with the session:
错误原因:这个错误产生原因是因为在hibernate中同一个session里面有了两个相同标识但是不同实体的对象.比如通过hibernate从数据库中查出一个对象A,有手动new了一个新的对象B,并且付给B与A相同的标识符,再通过hibernate保存B,这样就在session里同时存在A和B这两个相同标识符但不同的对象。
解决方法:方法1,保存B之前,调用一下session.clear(),清空一下当前session,但此方法不适合在一次需要保存多个对象时,不推荐使用!
方法2,在保存B之前,清除一下session中A对象,只清除A对象,调用session.evict(A)即可;
方法3,通过调用session.merge(B),这样会用B去更新库中的A,但不会把B持久化,session中就不会同时存在A和B
方法4,把B对象的属性值都set到A中,然后还保存A即可。
几种方法根据业务需要选择使用,如无特殊需要,推荐采用第三种方法。
9.&&& doesnot contain handler parameter named 'method'
错误信息:Request[/patientSelfAction] does not contain handlerparameter named 'method'.& This may becaused by whitespace in the label text.
10.&&&&&&&&&&Socket异常1:Address already in use: JVM_Bind
该异常发生在服务器端进行new ServerSocket(port)(port是一个0,65536的整型值)操作时。异常的原因是以为与port一样的一个端口已经被启动,并进行监听。此时用netstat –an命令,可以看到一个Listending状态的端口。只需要找一个没有被占用的端口就能解决这个问题。
11.&&&&&&&&&&Socket异常2: Connection refused: connect
该异常发生在客户端进行new Socket(ip, port)操作时,该异常发生的原因是或者具有ip地址的机器不能找到(也就是说从当前机器不存在到指定ip路由),或者是该ip存在,但找不到指定的端口进行监听。出现该问题,首先检查客户端的ip和port是否写错了,如果正确则从客户端ping一下服务器看是否能ping通,如果能ping通(服务服务器端把ping禁掉则需要另外的办法),则看在服务器端的监听指定端口的程序是否启动,这个肯定能解决这个问题。
12.&&&&&&&&&&Socket异常3: Socket is closed
该异常在客户端和服务器均可能发生。异常的原因是己方主动关闭了连接后(调用了Socket的close方法)再对网络连接进行读写操作。&
13.&&&&&&&&&&Socket异常4: Connection reset
该异常在客户端和服务器端均有可能发生,引起该异常的原因有两个,第一个就是如果一端的Socket被关闭(或主动关闭或者因为异常退出而引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。另一个是一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connection reset)。简单的说就是在连接断开后的读和写操作引起的。
14.&&&&&&&&&&Socket异常5: Broken pipe
该异常在客户端和服务器均有可能发生。在第4个异常的第一种情况中(也就是抛出SocketExcepton:Connect reset by peer:Socket write error后),如果再继续写数据则抛出该异常。前两个异常的解决方法是首先确保程序退出前关闭所有的网络连接,其次是要检测对方的关闭连接操作,发现对方关闭连接后自己也要关闭该连接。
15.&&&&&&&&&&视图转储为sql后无法导入
使用navicat工具导出数据库为sql文件后,其中视图的sql语句中有以下内容:
DROP VIEW IF EXISTS `bloodpressure`;
CREATE ALGORITHM=UNDEFINEDDEFINER=`root`@`` SQL SECURITY DEFINER VIEW `bloodpressure` AS....
其中DEFINER的值中@后面应该是数据库所在主机的IP地址,通过可视化工具建立连接后执行sql语句的话,可以直接使用localhost或者127.0.0.1即可,即DEFINER=`root`@`localhost`
16.&&&&&&&&&&完全卸载MySQL
由于各种原因需要重装MysSQL,通常会遇到原来的配置信息卸载不干净而引起重装失败的现象。那么如何才能确保MySQL卸载干净呢?如果你是通过控制面板的“添加和删除程序”来卸载MySQL的话,那么你还需要进行以下两步操作:
1、删除原数据信息,即删除C:\Documents and Settings\All Users\Application Data路径下的MySQL文件夹,有时改文件夹可能被隐藏,通过选择“工具”下的“文件夹选项”,点击“查看”,选择“隐藏文件和文件夹”下的“显示所有文件和文件夹”,就可以显示出来了。
2、删除注册表信息,运行regedit命令,以此展开,删除里面的MySQL文件夹,有几个地方:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL
17.&&&&&&&&&&java.lang.OutOfMemoryError:Java heap space
引起java.lang.OutOfMemoryError: Java heap space异常,可能是由JAVA的堆栈设置太小的原因
在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息。
JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。
根据网上的答案大致有以下三种解决方法:
1、在D:/apache-tomcat-6.0.18/bin/catalina.bat最前面加入:set JAVA_OPTS=-Xms200m-Xmx512m
注意:只有startup.bat启动tomcat,设置才能生效,如果利用windows的系统服务启动tomcat服务,上面的设置就不生效了,&
就是说set JAVA_OPTS=-Xms200m -Xmx512m没起作用
&&&&&&&&&&&&&&
2、在Eclilpse中修改启动参数,在VM arguments
加入了-Xms200m -Xmx512m,设置如下图所示
3、& 可以在windows 更改系统环境变量,加上JAVA_OPTS=-Xms64m-Xmx512m
18.&&&&&&&&&&webService 异常:The endpoint reference (EPR) for the Operation not found is :
The endpoint reference (EPR) for the Operation not found is/EMRServer/services/BloodpressureService/getBloodpressure
错误原因:找不到资源。可能是service名称不存在,或者方法名称错误等原因
19.&&&&&&&&&&org.apache.axis2.deployment.DeploymentException
最近在做axis2,开始运行正常,今天加入spring AOP 后,出现下面的异常
:The following error occurred during schema generation:
&Unable to load bytecode for classcom.mon.Controller.BloodpressureController$$EnhancerByCGLIB$$39228aa1
网上找资料看了之后,发现是由于axis2
不能参与事务管理,而我的写的service又刚好符合pointcut,所以报错了,后来把pointcut改写了一下,就不会报错了,
结论:service服务不能配置为切入点。
20.&&&&&&&&&&Sql语句优化(嵌套子查询)
Sql in 语句 效率奇低(ExecutionTime : 24 s)
SELECT phone FROM runmessage WHERE&encounterDatetime IN (SELECT MAX(encounterDatetime) FROM runmessageWHERE DATE(encounterDatetime)='' GROUPBY email) ORDER BY steps DESC LIMIT 0,10;
优化后:效果显著(Execution Time : 3 s)
SELECT * FROM (SELECT MAX(encounterDatetime) ASencounterDatetime,phone,steps,email FROM runmessage WHEREDATE(encounterDatetime)='' GROUPBY email) AS tempMessage ORDER BY tempMessage.steps DESC LIMIT 0,10;
21.&&&&&&&&&&registered the JDBC driver butfailed to unregister it
Tomcat关闭时报出警告:
严重: The webapplication [/EMRServer] registered the JDBC driver [com.mysql.jdbc.Driver] butfailed to unregister it when the web application was stopped. To prevent amemory leak, the JDBC Driver has been forcibly unregistered.
原因未知。
22.&&&&&&&&&&Caused by:java.lang.NoClassDefFoundError: org/hibernate/exception/DataException
错误原因:hibernate通过Hql语句进行数据库操作时,hql语句中的字段拼写错误,导致无法识别,报出此异常。比如,如果from后面写的是实体类名,后面的字段就必须是类的属性,而不能是表字段的名称。切记!!!
23.&&&&&&&&&&IllegalStateException: Couldnot find @PathVariable [startTime] in @RequestMapping
异常信息:org.springframework.web.util.NestedServletException:
Reque nested exceptionisorg.springframework.web.bind.annotation.support.HandlerMethodInvocationException:Failed to invoke handler method [publicorg.springframework.web.servlet.ModelAndViewcom.cmcc.emr.restful.Controller.BloodSugarController.findBloodsugar(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)throws
java.lang.Exception]; nested exception isjava.lang.IllegalStateException:
in @RequestMapping
&&&&& org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:659)
&&&&&& org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552)
&&&&&& javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
&&&&&& javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
&&&&&& com.cmcc.emr.Util.LoginFilter.doFilter(LoginFilter.java:27)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
&&&&&& org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
错误原因:
最近在使用restful规范实现webService,发现这个非常奇怪的异常!明明存在@PathVariable[startTime]这个参数,但却一直报:Couldnot find!
两个接口如下:
Post接口:
@RequestMapping(method=RequestMethod.POST, value=&/bloodSugars/{idcard}/{encounterDatetime}/{beforemeal}/{aftermeal}/{appType}&)
&&& public
void insertBloodSugar(@PathVariable String idcard,@PathVariable StringencounterDatetime,
&&&&&&&&&& @PathVariable String beforemeal,@PathVariable String aftermeal,@PathVariable StringappType,
&&&&&&&&&& HttpServletRequestrequest,HttpServletResponse response) throws Exception{
@RequestMapping(method=RequestMethod.GET, value=&/bloodSugars/{idcard}/{startTime}/{endTime}/{startNum}/{offset}&)
&&& public ModelAndView findBloodsugar(@PathVariable String idcard,@PathVariable StringstartTime,@PathVariable
String endTime,
&&&&&&&&&& @PathVariable StringstartNum,@PathVariable String offset)
throws Exception{
Post接口调用正常,但是调用Get接口时,就一直报上面的这个异常,百思不得其解!!
后来各种观察,各种测试,发现当两个方法参数个数不同时,都可以正常运行,因此怀疑是restful 没能把post 和 get 方法区分清除,导致查找失败,后又做了几个测试,证明确实如此,不仅是get和post,put方法也是一样,只要参数个数相同,都会去匹配post注解下的方法,如果两个方法参数名称不同,结果就会出现Could not find @PathVariable,不明白问什么会出现这种现象,注解@RequestMapping的保留策略也是runtime的!待查。。。
24.&&&&&&&&&&Tomcat7与ActiveMQAjaxServlet不兼容问题
Tomcat6上使用ActiveMQ AjaxServlet时,完全没有问题
但是,Tomcat7使用ActiveMQ AjaxServlet时,发生Not supported.
网上了很多方案,都说只要对AjaxServlet加上async-supported支持就可以了。
但是,实际结果还是报同样的异常。
经过长时间的尝试,终于找到问题的原因了。
原来消息请求在AjaxServlet处理前,会先被filter先处理,所以filter也要加上async-supported支持。
具体配置代码如下:
&!-- ActiveMQ servlet --&&servlet&&servlet-name&AjaxServlet&/servlet-name&&servlet-class&org.apache.activemq.web.AjaxServlet&/servlet-class&&load-on-startup&1&/load-on-startup&&async-supported&true&/async-supported&&/servlet&&servlet-mapping&&servlet-name&AjaxServlet&/servlet-name&&url-pattern&/amq/*&/url-pattern&&/servlet-mapping&&!-- 著名 Character Encoding filter --&&filter&&filter-name&encodingFilter&/filter-name&&filter-class&org.springframework.web.filter.CharacterEncodingFilter&/filter-class&&async-supported&true&/async-supported&&init-param&&param-name&encoding&/param-name&&param-value&UTF-8&/param-value&&/init-param&&init-param&&!-- 强制进行转码 --&&param-name&forceEncoding&/param-name&&param-value&true&/param-value&&/init-param&&/filter&&filter-mapping&&filter-name&encodingFilter&/filter-name&&url-pattern&/*&/url-pattern&&/filter-mapping&&!-- ActiveMQ --&&filter&&filter-name&session&/filter-name&&filter-class&org.eclipse.jetty.continuation.ContinuationFilter&/filter-class&&async-supported&true&/async-supported&&/filter&&filter-mapping&&filter-name&session&/filter-name&&url-pattern&/*&/url-pattern&&/filter-mapping&
25.&&&&&&&&&&unknown protocol: c
项目部署在tomcat下,启动的时候报错:
java.net.MalformedURLException: unknown protocol: c
&&&&&&&&&&&&&&&&&& at java.net.URL.&init&(URL.java:574)
&&&&&&&&&&&&&&&&&& at java.net.URL.&init&(URL.java:464)
&&&&&&&&&&&&&&&&&& at java.net.URL.&init&(URL.java:413)
&&&&&&&&&&&&&&&&&& at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:650)
&&&&&&&&&&&&&&&&&& at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:186)
&&&&&&&&&&&&&&&&&& at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)...
这个错一般有两种原因导致:
1、URL协议、格式或者路径错误,好好检查下你程序中的代码
如果是路径问题,最好不要包含中文路径,因为有时中文路径会乱码,导致无法识别
Tomcat 不要安装在有中文或空格的路径下。
2、jar问题:用jdom解析xml文件,如果应用路径里有gnujaxp.jar包的话,jdom就会&
调用它去解析xml文件,导致上述异常的出现。
如果是这个问题,解决方法:在应用路径里去掉对gnujaxp.jar包的引用。
26.&&&&&&&&&&Unsupported major.minor version51.0
问题产生的原因:用jdk7编译的class文件放到基于jdk6运行在tomcat之中,就会报这个错。
解决起来也很方便:打开eclipse中项目上的属性—java compiler–选择一个合适的版本后重新编译即可。
解决:项目------&右键------&属性------&Java Compiler------&Compiler Compliance Level------&选择你使用的JDK版本------&应用。
总结:不同的JDK版本使用的major.minor不同,所以会导致这个错误。在项目中要使用当前电脑配置的JDK版本,切忌张冠李戴。
知识扩充:major.minor version,它相当于一个软件的主次版本号,只是在这里是标识的一个Java Class的主版本号和次版本号。
JDK1.7&& 51.0
JDK1.6&& 50.0
JDK1.5 49.0
JDK1.4 48.0
总之问题的根由是低版本的 JVM 无法加载高版本的 class 文件造成的,找到高版本的 class 文件处理一下就行了。
27.&&&&&&&&&&Can not issue data manipulationstatements with executeQuery()
Can not issue data manipulation statementswith executeQuery().
&&&&&& atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
&&&&&& atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
&&&&&& atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
&&&&&& atcom.mysql.jdbc.StatementImpl.checkForDml(StatementImpl.java:413)
&&&&&& atcom.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1336)
&&&&&& atcom.mchange.v2.c3p0.impl.NewProxyStatement.executeQuery(NewProxyStatement.java:35)
&&&&&& atcom.cmcc.util.C3p0Utils.executeQuery(C3p0Utils.java:147)
错误原因:
&&&&&& 使用executeQuery()方法执行了update,insert,delete等语句
28.&&&&&&&&&&Hibernate中常见的异常
本文总结Hibernate中常见的异常。
1. net.sf.hibernate.MappingException
&&&&&&&当出现net.sf.hibernate.MappingException: Errorreading resource:…异常时一般是因为映射文件出现错误。
&&&&&&&当出现net.sf.hibernate.MappingException:Resource: … not found是因为XML配置文件没找到所致,有可能是放置目录不正确,或者没将其加入hibernate.cfg.xml中。
2. net.sf.hibernate.PropertyNotFoundException
&&&&&&&当出现net.sf.hibernate.PropertyNotFoundException:Could not find a setter for property name in class …时,原因一般是因为XML映射文件中的属性与对应的Java类中的属性的getter或setter方法不一致。
3. org.hibernate.id.IdentifierGenerationException
&&&&&&&当出现org.hibernate.id.IdentifierGenerationException:ids for this class must be manually assigned before calling save():异常时,一般是因为&id&元素配置不正确,&id&元素缺少其子元素&generator&&/generator&的配置引起。
&&&&&&&解决方案:&id&元素映射了相应数据库表的主键字段,对其子元素&generatorclass=&&&,其中class的取值可以为increment、identity、sequence、hilo、native……等,更多的可参考hibernate参考文档,一般取其值为native&。具体可参考2.2.2.1小节。
4. a different object with the same identifier value was alreadyassociated with the session
&&&&&&&当出现a different object with the same identifiervalue was already associated with the session时,一般是因为在hibernate中同一个session里面有了两个相同标识但是是不同实体。
&&&&&&&有如下几种解决方案:
(1)使用session.clean(),如果在clean操作后面又进行了saveOrUpdate(object)等改变数据状态的操作,有可能会报出&Found two representationsof same collection&异常。
(2)使用session.refresh(object),当object不是数据库中已有数据的对象的时候,不能使用session.refresh(object)因为该方法是从hibernate的session中去重新取object,如果session中没有这个对象,则会报错所以当你使用saveOrUpdate(object)之前还需要判断一下。
(3)session.merge(object),Hibernate里面自带的方法,推荐使用。
5. SQL Grammer Exception,Could not execute JDBC batch update
&&&&&&&当出现SQL Grammer Exception,Could not executeJDBC batch update异常时,一般是由如下问题引起:
(1)SQL语句中存在语法错误或是传入的数据有误;
(2)数据库的配置不合法,或者说是配置有误。较容易出现的有数据表的映射文件(,hbm.xml文件)配置有误;Hibernate.cfg.xml文件配置有误;
(3)&当前的数据库用户权限不足,不能操作数据库。以是以Oracle&数据库为例,这种情况下在错误提示中会显示java.sql.BatchUpdateException: ORA-01031: insufficient privileges这样的信息。
&&&&&&&针对上面的各种原因,开发人员可以找出对应的解决方案。
29.&&&&&&&&&&teamviewer现在无法捕捉屏幕,这可能是由于快速的用户切换或远程桌面会话已经断开
这个问题蛮简单,如果你用“”连过去开启teamview的话,当你退出“”后,外网用teamview连接就会出现这个问题,
解决方法:
&&&&& 不用过去开启teamview,直接在在电脑本机上手动开启teamview就可以了
30.&&&&&&&&&&does&not&contain&handler&parameter&named&'method'.&&This&may&be&caused&by&whitespace&in&the&label&text.
Struts1中 action这样配置的话:
path=&/login&&
name=&loginForm&parameter=&method&
&&& type=&org.springframework.web.struts.DelegatingActionProxy&
页面访问时:正确方式是:/login.do?method=xxx ,如果以 /login.do 访问就会报此异常
31.&&&&&&&&&&java.lang.OutOfMemoryError:PermGen space PermGen space
一、&&java.lang.OutOfMemoryError:PermGen space PermGen space的全称是Permanent Generation space,是指内存的永久保存区域, 这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中, 它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对 PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen
space错误, 这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。
&解决方法: 手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.sh 在“echo &Using CATALINA_BASE: $CATALINA_BASE&”上面加入以下行: JAVA_OPTS=&-server -XX:PermSize=64M-XX:MaxPermSize=128m
二、 Windows
在catalina.bat最前面加入
set JAVA_OPTS=-Xms128m -Xmx350m&
如果用startup.bat启动tomcat,OK设置生效.够成功的分配200M内存.
但是如果不是执行startup.bat启动tomcat而是利用windows的系统服务启动tomcat服务,上面的设置就不生效了,
就是说setJAVA_OPTS=-Xms128m -Xmx350m
没起作用.上面分配200M内存就OOM了..
windows服务执行的是bin\tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置.
修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\ApacheSoftware Foundation\Tomcat Service Manager\Tomcat5\Parameters\JavaOptions
原值为
-Dcatalina.home=&C:\ApacheGroup\Tomcat5.0&
-Djava.endorsed.dirs=&C:\ApacheGroup\Tomcat5.0\common\endorsed&
加入 -Xms300m-Xmx350m&&
重起tomcat服务,设置生效&
32.&&&&&&&&&&MySQL server version for theright syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT'
You have an error in your SQL check the manual thatcorresponds to your MySQL server version for the right syntax to use near'OPTION SQL_SELECT_LIMIT=DEFAULT' at line 1
项目中我用的jdbc驱动版本
mysql-connector-java-5.1.15.jar
mysql数据库版本为5.6
jdbc在连接数据库时候会发送测试语句SETOPTION&SQL_SELECT_LIMIT=DEFAULT
这在mysql5.6以下版本是可以的,但是5.6不再支持SET...
&由于5.6这个变化,导致一些旧的软件可能运行出错。mysql官方也不承认这是bug,只能升级你的Mysql驱动来解决。
目前所知:mysql-connector-java-5.1.15.jar及以前版本不可以,
mysql-connector-java-5.1.25.jar及之后版本可以
解决方法:
&升级驱动版本,我改成了mysql-connector-java-5.1.25.jar&
33.&&&&&&&&&&Error creating bean with name'patientService': Injection of autowired
Caused by:org.springframework.beans.factory.BeanCreationException: Could not autowirefield: public com. flex.dao.JdbcDaocom.cmcc.flex.service.PatientService.jdbcD nested exception isorg.springframework.beans.factory.NoSuchBeanDefinitionException:
No matchingbean of type [com.flex.dao.JdbcDao] found for dependency: expected at least 1bean which qualifies as autowire candidate for this dependency. Dependencyannotations:
不能创建bean,因为自动注入失败。出现此异常的原因是:注解扫描配置顺序错误,或者配置冲突,请检查各个引入的xml文件中是否有重复配置。参考配置如下:
&context:component-scan
base-package=&com.test&/&
&& &!-- enable autowire --&
&& &context:annotation-config
&& &!-- enable transaction demarcation with annotations --&
&& &tx:annotation-driven
34.&&&&&&&&&&java.io.IOException: Cannot runprogram &C:\analyze&: &CreateProcess error=5
java程序通过Runtime.getRuntime().exec()方法调用C程序可执行文件,报此异常。
最后的解决方法是:把jdk的版本从7换成了6,一切就正常了,哎!!
35.&&&&&&&&&&打成jar包后,注解无法扫描的问题
解决方法:export jar的时候,勾选add directory entries&
36.&&&&&&&&&&ava.io.EOFException错误
Tomcat启动后报:IOException while loading persistedsessions: java.io.EOFException错误
出现原因:tomcat对保存硬盘的session读取失败
解决方法:打开TOMCAT的安装目录,在WORK文件夹找到Catalina\localhost\你的工程名所在文件夹下,&&把里面的session.ser删除即可,或者直接清空localhost
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:78942次
积分:1270
积分:1270
排名:第16713名
原创:45篇
转载:15篇
评论:31条
(1)(4)(1)(5)(4)(5)(4)(5)(6)(10)(2)(4)(1)(1)(4)(1)(2)

我要回帖

更多关于 销售工作中遇到的问题 的文章

 

随机推荐