Spring + Hibernate + Struts 学习日记

来源:互联网 发布:网络黄金egd合法吗 编辑:程序博客网 时间:2024/04/29 12:55

请查看struts-config.xml中的定义部分,有时可能是打错了字符或者是某些不符合规则,可以使用struts console工具来检查。


建议你分开来做,如果是用MyEclipse的话,先加载Struts,然后写一个简单的登录程序,后台不用数据库,看能否成功,如果用验证的话,再加上validator,看能否成功,然后再载Spring,看能否成功,再加上Hibernate,

 


******** Eclipse 版本不同的问题 ********


The type java.lang.Object cannot be resolved.It is indirectly referenced from required.class files。
1、The type java.lang.Object cannot be resolved.It is indirectly referenced from required.class  files。 
     出现以上信息的原因是因为你装了多个版本的jre或jdk的关系。本来Eclipse在建立工程时,会自动参  照你的jre路径,但多个版本就没办法了。
  你只能手动建立…
   a. 进入window/preferences/java/Installed JREs
       1)按Add
       2)输入JRE Name, 例JDK1.5.0.03
       3)JRE home directory, 选择安装的路径
       4)按OK
  b. 进入Project/properties/Java Bulid Path
      1)Add library
      2)选JRE System Library后按Next
     3)选workplace default JRE后按finish...
2、The import javax.servlet cannot be resolved
   上面问题的解决办法如下:将servlet-api.jar(在%TOMCAT_HOME%//common/lib目录下面可以找  到 这个文件)或者javaee.jar导入每个动态web工程。

 


******** Asp.net 中的isPostBack ********

//哈哈,为什么JSF中没有呢,自己写一个吧。


public boolean isPostBack( ) {
          if( getFacesContext().getRenderResponse() )
               return false;
          else
               return true;
  }

 

******错误******
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;

在网上多翻查找均未能解决,后终于摸索出解决之道,办法如下:

从网上下一个最新的asm-all-3.0.jar的jar包,然后把原来的所有asm开头的jar包全部删掉,还有一个cglib-2.1.3.jar也删掉.

 

******错误******

log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax)
log4j:WARN Please initialize the log4j system properly.
2006-11-9 9:46:51 org.apache.catalina.core.StandardContext start
严重: Error listenerStart


少log4j.properties 从Tomcat所带的示例中拷一个放到/WEB-INF/classes下

 


**********Spring 启动慢**********
仔细看了spring的源代码,发现主要是spring的beans,默认default-lazy-init为false,导致在启动时候,会默认加载整个对象实例图,导致速度慢

把beans的default-lazy-init改为true的话,spring在启动的时候并没有真正实例化对象,而只是用一个代理来实现。当真正需要调用该类的时候,才会去实例化。更重要的是spring的实例化对象效率是不高的,需要花费很多时间。这样在运行期间第一次点页面的时候,会加载一部分需要的beans,所以稍微慢2-3秒钟,但是这相对于一次性加载花费的50秒钟要轻松很多

 

 

 

 

 


JDK 1.4 + Spring 1.2 + hibernate 3.1 + Tomcat 5.0 + Struts 1.2


**************导入spring到库错误**************
Unable   to   install   all   Spring   libraries.
Reason:
Unable   to   access   project 's   build-path

是不是   把spring下的所有   lib   都选择了   ,注意   你选择hibernate2   就不要选hibernate3   2者只应当选其一   否则会有   访问工程的构建路径   的冲突     nable   to   access   project 's   build-path

 

 


the jar file struts.jar has no source attachment
***************************************
因为你没有关联源代码。这个是可以设置的。在出现上述错误的界面有个按钮,名称叫“Attach Source……”点击进去就可以设置了。

 


No connection properties specified - the user must supply JDBC connections
org.hibernate.HibernateException: Hibernate Dialect must be explicitly set

*******************************************
spring + hibernate 是报上面的错,原因是,配置文件,hibernate.cfg.xml文件必须放在src目录下.
同时.配置文件各属性如下:

<session-factory>

<property name="show_sql">true</property>
<!--  <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>-->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/demodb</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<mapping resource="com/sterning/books/model/books.hbm.xml"/>   
       
        <!--
        <class-cache class="org.hibernate.auction.Item" usage="read-write"/>
        <class-cache class="org.hibernate.auction.Bid" usage="read-only"/>
        <collection-cache collection="org.hibernate.auction.Item.bids" usage="read-write"/>
        -->
       
</session-factory>

 

 

java.lang.IllegalArgumentException: argument type mismatch
*************************************************************************

错误原因:jsp页面中表单标记库类型与form表单的enctype属性值不匹配。_4F(WCco
解决方法:设置正确的enctype属性值。
<html:form action="" enctype="multipart/form-data">

BeanUtils.populate&argument type mismatch - [Struts]
1.继承ActionForm的类的所有字段必须为String型 
2.由于Date型转换为String需设置DateFormat,所以你的Bean里的日期字段最好用String   
这样就不会出现类型转换错误了。
 
今天做Struts框架的JSP网站,到执行插入页面时,本应是往数据库插入数据,结果抛出 “java.lang.IllegalArgumentException: argument type mismatch”,百思不得其解(根本就不会,想破脑袋也不能解)从网络上找资料,很多人说是form那出的问题,按方法解之,未果。后来上论坛问,原来是页面数据绑定到form 时数据类型不匹配(尤其注意不是String类型的),改之,问题解决!
还有很重要的一点就是看eclipse中的报错信息!!!

 

 


struts + spring 出现 HTTP Status 404 - Servlet action is not available
************************************************************************
拷贝commons-beanutils.jar和commons-digester.jar到WEB-INF/lib.

 

 

Cannot retrieve mapping for action
**********************************************************
异常
javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login (/Login是你的action名字)


可能原因
action 没有再struts-config.xml 中定义,或没有找到匹配的action,例如在JSP文件中使用 <html:form action="Login.do".将表单提交给Login.do处理,如果出现上述异常,请查看struts-config.xml中的定义部分,有时可能是打错了字符或者是某些不符合规则,可以使用struts console工具来检查。

 

The content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)".
**********************************************************
在添加过滤器的时候,把所有的<servlet-mapping>都放到<servlet>元素之后,

原创粉丝点击