使用Myeclipse開發web項目常遇到的異常

1、

嚴重: Exception starting filter authority

java.lang.ClassNotFoundException: com.tju.cncf.interceptor.AuthorityFilter
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:252)

Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanDefinitionStoreException: IOException


原因:額外添加的jar沒有導入,build path 裏重新導入


2、
ERROR [org.hibernate.util.JDBCExceptionReporter] - Cannot create PoolableConnectionFactory (無法打開登錄所請求的數據庫 "cncf"。登錄失敗。)
2012-10-16 21:37:23,514 WARN [org.hibernate.cfg.SettingsFactory] - Could not obtain connection to query metadata
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (無法打開登錄所請求的數據庫 "cncf"。登錄失敗。)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:111)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2119)


原因:applicationContext.xml中

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver">
</property>
<property name="url" value="jdbc:sqlserver://192.168.1.109:1433;DatabaseName=cncf"></property>
<property name="username" value="admin"></property>
<property name="password" value="123"></property>
</bean>


3、

WARN [com.opensymphony.xwork2.ognl.OgnlValueStack] - Error setting expression 'user.department' with value '[Ljava.lang.String;@e10154'

ognl.MethodFailedException: Method "setDepartment" failed for object com.tju.cncf.hibernate.UserInfo@1bc339e [java.lang.NoSuchMethodException: com.tju.cncf.hibernate.UserInfo.setDepartment([Ljava.lang.String;)]
解決方法:
jsp中的名字與Action類中的一致,如 user.department.departmentName


4、

異常:

org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:57)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)

原因:hibernate3 many-to-one的默認選項是 lazy = "proxy"
解決方法:<many-to-one> & <set> 中設置 lazy="false"

5、

java.lang.NullPointerException

java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1235)
java.text.DateFormat.parse(DateFormat.java:335)

原因:有些值未傳入,爲空
解決方法:檢查action類中的屬性 和 jsp表單中的對應

6、

java.lang.NullPointerException

com.tju.cncf.action.user.UserAction.getInfo(UserAction.java:159)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
原因:傳入值爲空
解決方法:


7、

org.apache.jasper.JasperException: javax.servlet.ServletException: File "/jsp/user/jsp/common/header.jsp" not found

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:585)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
原因:jsp路徑不對 或者 strust.xml中沒有與“字符串”對應的result
解決方法:相對路徑改爲絕對路徑/jsp/common/header.jsp

8、

java.lang.RuntimeException: Invalid action class configuration that references an unknown class named [userAction]

org.apache.struts2.convention.ConventionsServiceImpl.determineResultPath(ConventionsServiceImpl.java:100)
org.apache.struts2.convention.ConventionUnknownHandler.determinePath(ConventionUnknownHandler.java:385)
org.apache.struts2.convention.ConventionUnknownHandler.handleUnknownResult(ConventionUnknownHandler.java:274)
com.opensymphony.xwork2.DefaultUnknownHandlerManager.handleUnknownResult(DefaultUnknownHandlerManager.java:87)
原因:struts.xml中result配置錯誤,找不到或沒有配置,檢查

9、

exception


java.lang.NullPointerException
com.tju.cncf.interceptor.AuthorityFilter.doFilter(AuthorityFilter.java:35)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
原因:AuthorityFilter中的init()函數參數錯誤


10、

exception

java.lang.NumberFormatException: For input string: "[object HTMLInputElement]"
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
java.lang.Integer.parseInt(Integer.java:447)
java.lang.Integer.parseInt(Integer.java:497)
com.tju.cncf.action.user.UserAction.preModifyRole(UserAction.java:364)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)

原因:
解決方法:


11、

exception


org.apache.jasper.JasperException: tag 'select', field 'list', name 'user.department.departmentName': The requested list key 'allDepartments' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:585)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
原因:
解決方法:<button class="longbuttton" type="submit" name="add"
onClick="javascript:window.location.href='/CNCF/userAction_forwardTo.action'">
<img src="/CNCF/images/user.png" alt="" />
新增用戶
</button>


12、

org.springframework.orm.hibernate3.HibernateSystemException: a different object with the same identifier value was already associated with the session: [com.tju.cncf.hibernate.Privilege#1]; nested exception is org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.tju.cncf.hibernate.Privilege#1]
org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:679)
org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
原因:
解決方法:你這個類的ID應該本地化,在該類的.hbm.xml中將generator的值改爲native


14、
異常處理之 org.apache.catalina.session.ManagerBase IOException
[ERROR] 16:08:58 org.apache.catalina.session.ManagerBase - IOException while loading persisted sessions: java.io.EOFException
......
......

是因爲保存在硬盤上的session數據讀取失敗,問題似乎不大,但是如果不處理一下,每次啓動都會出現這個問題
解決:
只要刪除Tomcat/work目錄下(D:/Tomcat55/work/Catalina/localhost/dbsstest)所屬工程中的"session.ser"文件即可。

15、

Unable to load configuration. - bean - jar:file:/D:/WIN7/apache-tomcat-6.0.26/webapps/DoAjax/WEB-INF/lib/struts2-spring-plugin-2.1.8.1.jar!/struts-plugin.xml:29:132

解決:Struts 2 版本不一致引發的異常!
struts2-core-2.0.9.jar 與 struts2-spring-plugin-2.2.1.jar 版本不一致!

16、
Background Indexer Crash Recovery
java.lang.StackOverflowError
這個問題百度說是構建路徑的jre有問題,但是我遇到的問題並非如此,
點擊錯誤日誌詳情如下:
java.lang.StackOverflowError
at java.util.ArrayList.get(ArrayList.java:322)
at org.eclipse.dltk.internal.javascript.typeinference.CombinedOrReference.isLocal(CombinedOrReference.java:296)
at org.eclipse.dltk.internal.javascript.typeinference.TransparentRef.isLocal(TypeInferencer.java:149)
at org.eclipse.dltk.internal.javascript.typeinference.CombinedOrReference.isLocal(CombinedOrReference.java:297)
at
解決方案:
1、Help > MyEclipse Configuration Center > Dashboard tab
2、在Add-ons下取消勾選:"MyEclipse IE Javascript Debugger (Windows Only)"
3、在右下方的掛起面板(Pending Changes)選擇:Apply 1 change
4、等待eclipse自己進行更新,可能需要很久,親測等待時間在半個小時以上。。。

17、
Exception in thread "DefaultQuartzScheduler_Worker-4" java.lang.OutOfMemoryError: PermGen space
Exception in thread "DefaultQuartzScheduler_Worker-1" java.lang.OutOfMemoryError: PermGen space
Exception in thread "DefaultQuartzScheduler_QuartzSchedulerThread"
解決方法: MyEclipse-->refrence-->tomcat-->jdk設置裏面修改JVM啓動MaxPermSize
一、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)那麼就會產生此錯誤信息了。
解決方法: 1、手動設置MaxPermSize大小

修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
建議:將相同的第三方jar文件移置到tomcat/shared/lib目錄下,這樣可以達到減少jar 文檔重複佔用內存的目的。

2、進入tomcat webapps文件夾 把不用的工程刪掉


18、
當 IDENTITY_INSERT 設置爲 OFF 時,不能爲表


failed to lazily initialize a collection of role: XXXXXX, no session or session was closed

解決辦法:1、是把對應一對多的那兩個列lazy=true改爲lazy=false即可;
2、爲set設置lazy="false"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章