润乾报表在J2EE下部署的注意问题
当今开源框架技术已经相当成熟,许多企业都在用框架,那么润乾报表就肯定得支持框架,但是有些客户在使用中或多或少的会出这样那样的问题,现把润乾报表在整合struts2和hibernate时,用户可能出现的典型错误展示出来,并附上正确的配置方法。
问题1:整合Struts2时Web.xml中配置过滤器的问题。
一般情况下,我们会在struts2下配置一个过滤所有文件的过滤器。如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
而由此也带来了不少的问题,那就是润乾的自带的Servlet 也被struts拦截了,这样就访问不到这个Servlet了。为了能够实现servlet,我们可以如下的方式定义struts的Filter:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
这样这个问题就可以解决了。
问题2:整合Hibernate时hibernate.cfg.xml的配置问题。
注:以sql2000数据库为例
<?xml version=’1.0′ encoding=’UTF-8′?>
<!DOCTYPE hibernate-configuration PUBLIC
“-//Hibernate/Hibernate Configuration DTD 3.0//EN”
“http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd”>
<!– Generated by MyEclipse Hibernate Tools. –>
<hibernate-configuration>
<session-factory>
<property name=”connection.username”>sa</property>
<property name=”connection.url”>
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=xxx;SelectMethod=Cursor</property>
<property name=”dialect”>
org.hibernate.dialect.SQLServerDialect
</property>
<property name=”myeclipse.connection.profile”>sql2k</property>
<property name=”connection.password”>sa</property>
<property name=”connection.driver_class”>
com.microsoft.jdbc.sqlserver.SQLServerDriver
</property>
<mapping resource=”com/xxx/xxxx/xxx.hbm.xml” />
</session-factory>
</hibernate-configuration>
这里要注意的是,在url的最后一定要加上”;SelectMethod=Cursor”,这样才打开了服务器游标,不加默认的是SelectMethod=direct,使用IBatis要求SelectMethod的值必须是Cursor,否则会报错[Microsoft][SQLServer 2000 Driver for JDBC]Can”t start a cloned connection while in manual transaction mode.