Struts報錯NoSuchMethodException,以下所示:java
Struts Problem Report Struts has detected an unhandled exception: Messages: • No row with the given identifier exists: [com.ftms.entity.JPositionTown#0] File: org/hibernate/internal/SessionFactoryImpl.java Line number: 247 ________________________________________ Stacktraces org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.ftms.entity.JPositionTown#0] org.hibernate.internal.SessionFactoryImpl$1$1.handleEntityNotFound(SessionFactoryImpl.java:247) org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:210) org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:251) org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:148) org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1079) org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1006) org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:613) org.hibernate.type.EntityType.resolve(EntityType.java:441) org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:168) org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:134) org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:995) org.hibernate.loader.Loader.doQuery(Loader.java:874) org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:289) org.hibernate.loader.Loader.doList(Loader.java:2438) org.hibernate.loader.Loader.doList(Loader.java:2424) org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2254) org.hibernate.loader.Loader.list(Loader.java:2249) org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:470) org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355) org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195) org.hibernate.internal.SessionImpl.list(SessionImpl.java:1248) org.hibernate.internal.QueryImpl.list(QueryImpl.java:101) com.ftms.dao.UserDAO.findByProperty(UserDAO.java:112) com.ftms.dao.UserDAO.findByUsername(UserDAO.java:120) com.ftms.dao.UserDAO$$FastClassByCGLIB$$42997a1e.invoke(<generated>) net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
可是web.xml檢查無誤,Strus的映射路徑也徹底沒有問題,這時候多是Action的方法參數出現了錯誤,好比在個人Struts.xml中定義以下web
<action name="queryPsd" class="UserManageAction" method="queryPsd"> <result type="json" name="queryPsd"> <param name="root">psdJson</param> </result> </action>
在Action中,定義了一個queryPsd方法json
public String queryPsd(){ psdJson = new JSONArray(); String psd = userService.queryPsd(username); psdJson.add(0,psd); return "queryPsd"; }
這樣就能夠了。ide
之因此沒有在queryPsd方法中接收參數,是由於在這個Action中已經定義了getter和setter方法。spa
可是,若是此時在queryPsd方法中再次接收參數,好比:hibernate
public String queryPsd(String username){ psdJson = new JSONArray(); String psd = userService.queryPsd(username); psdJson.add(0,psd); return "queryPsd"; }
那就會報這個NoSuchMethodException錯誤。
code
所以,當出現NoSuchMethodException錯誤提示時,能夠檢查Action中對應的方法參數是否對應正確。orm