分类: Java

OpenSessionInViewFilter FlushMode设置

发表于4年前(Dec 24, 2014 1:53:54 PM)  阅读 793  评论 0

分类: Java

标签: FlushMode InvalidDataAccessApiUsageException java.lang.NoSuchMethodException: org.hibernate.FlushMode.java.lang.String No String constructor found on type [org.hibernate.FlushMode] OpenSessionInViewFilter Write operations are not allowed in read-only mode

org.springframework.orm.hibernate3.support.OpenSessionInViewFilter是Spring提供的filter,用来保持session不关闭,使我们在前台页面可以获取延迟加载的数据。但是如果使用OpenSessionInViewFilter,在前台页面创建实体,进行持久化时,经常会出现如下错误:
org.springframework.dao.InvalidDataAccessApiUsageException:
Write op

......

Java创建ZIP压缩文件

发表于4年前(Dec 24, 2014 1:52:29 PM)  阅读 421  评论 0

分类: Java

标签: java压缩 ZipEn ZipOutputStream

java.util.zip下面有个ZipOutputStream类,使用这个类,我们可以创建一个ZIP压缩文件。见示例代码:

import java.io.File;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class TestZip {

	/**
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {
		ZipOutputStream zos = new ZipOutputStrea
......

关于hibernate延时加载

发表于4年前(Dec 24, 2014 1:51:36 PM)  阅读 505  评论 0

分类: Java

标签: hibernate延时加载 LazyInitializationException

hibernate在做实体关联关系时可以设置延时加载,延时加载的好处时,避免多余的sql查询,只有在需要用到时再进行查询,这样加快了程序处理效率。

通常jsp访问bean时,hibernate的session已经关闭,就会出现延时加载报错,LazyInitializationException,我们必须在web.xml里面配置一个filter,用来保持session状态,延时关闭。

这个是用于使用hibernate的时候:

 <filter>
	<filter-name>OpenSessionInViewFilter</filter-name>
	<filter-class>
		org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filt
......

Apache commons-net.jar中FTPClient的setControlEncoding与Weblogic冲突

发表于4年前(Dec 24, 2014 1:50:15 PM)  阅读 593  评论 0

分类: Java

标签: FtpClient commons-net.jar setControlEncoding weblogic冲突

在使用Apache的FTPClient进行ftp上传下载时,发现如果应用部署在weblogic下,调用FTPClient的setControlEncoding方法,将会报错,找不到这个方法。同样,调getControlEncoding时也一样,但是调别的方法就没问题。很明显是跟weblogic的包冲突了。包冲突网上一般都是说改weblogic启动文件,加weblogic.xml什么的,这些方法我一直就没调通过,很头疼。

在这里我也没有什么好的解决方法,我只能修改代码,读文件名的时候进行转码,如果下载文本文件,将文件输入流进行相应转码,也不是很麻烦。weblogic下面冲突的包实在太多了。

Java FTP下载文件

发表于4年前(Dec 24, 2014 1:49:20 PM)  阅读 518  评论 0

分类: Java

标签: FtpClient ftp下载 retrieveFileStream

Java如何FTP文件上传,可以参见我的这篇文章"java上传文件到ftp"。这次要讲的是如何用Apache提供的FTPClient来下载文件。

FTPClient里面有这么一个方法:
InputStream org.apache.commons.net.ftp.FTPClient.retrieveFileStream(String remote) throws IOException
这个方法就可以返回文件的输入流,有了他我们就可以读取文件内容,以文本文件为例:

public static StringBuffer downloadATxtFile(String server,String userName, String userPassword, String path, String fileName) {
		FTPClient ftpClient = new FTPClient();
		StringBuffer
......

禁用页面缓存

发表于4年前(Dec 24, 2014 1:47:06 PM)  阅读 548  评论 0

分类: Java

标签: no-cache 页面缓存

今天有位博客好友遇到一个问题,在管理页面给导航树添加了一个节点,切换回导航树时发现刚添加的节点并没有增加,刷新页面也不行,重新登录系统导航树才会更新。导航树是我指导他做的,采用的是ajax发送servlet请求建立的,我看他演示了两遍,debug在刷新页面时servlet代码并没有执行,代码本身没有问题,猜测是 因为页面缓存原因。

为了确认是否是页面缓存造成的,进入如下设置,打开IE工具–Internet 选项,常规选项卡,点击设置,检查所存网页的最新版本一项选择第一项–每次访问时检查。如下图所示:

再进行测试发现程序运行正常,由此可以确认是由于页面缓存的原因造成的。

知道原因就好办了,上面的方法完全可以禁用缓存,但是这是在客户端的,绝大部分情形我们无法要求客户照我们所要求禁用所有页面缓存,这就必须在我们在代码上进行控制,我们可以在缓存页面加上如下html代码来禁用页面缓存:

 

 

 

......

Spring使用weblogic中配置的数据源

发表于4年前(Dec 24, 2014 1:45:04 PM)  阅读 631  评论 0

分类: Java 开发运维环境

标签: Weblogic jndi 数据源

一般来说我们都是在应用程序里面配置jdbc数据源,因为这样可以脱离web服务器的设置,比较容易移植,但是也有情况使我们必须使用web容器配置数据源,例如如果要用的多个数据库时,在中间件中配置数据源就比较方便。

先讲下如何在weblogic中配置数据源,以weblogic9.3.2为例。启动weblogic,进入console页面, 在左侧Domain Structure面板选择Services,然后选择jdbc—-Data Sources,在这里将会显示现有的所有数据源,点击页面左上角的Lock&Edit,然后点New来新建一个数据源,Name跟JNDI Name由用户命名,一般用相同的,如test,Database Type则是选择你要连接的数据库类型,驱动会自己帮你选择,一般不用做修改。接下来的,用户都应该很熟悉,无非是ip地址,sid,用户名密码等。完成后将在DataSource列表里看到刚新建的数据源,jndi name就是我们待会再Spring中要用到的。在数据源configuration–connection poo

......

weblogic跟hibernate3冲突HqlToken

发表于4年前(Dec 24, 2014 1:42:27 PM)  阅读 539  评论 0

分类: Java 开发运维环境

标签: Weblogic antlr ClassicQueryTranslatorFactory factory里面可以配置hibernate.query.factory_classs hibernate3 HqlToken 包冲突

weblogic10以上的版本跟hibernate3中的antlr.jar冲突,冲突的原因网上已经有很多解释,方案也有很多,我测试了多种,只有一种成功了,不知道他们怎么成功的,现将我成功的方法分享给大家。

修改hibernate配置文件。因为我是使用的jpa,在我的applicationContext.xml里面以前配了这么一个entityManagerFactory

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
	<property name="dataSource" ref="dataSource" />
	<property name="jpaVendorAdapter"&
......

Java中的equals方法与hashCode方法解析

发表于4年前(Dec 24, 2014 1:28:35 PM)  阅读 430  评论 0

分类: Java

标签: == equals hashCode String 比较对象相等

我们都知道Java语言是完全面向对象的,在java中,所有的对象都是继承于Object类。Ojbect类中有两个方法equals、hashCode,这两个方法都是用来比较两个对象是否相等的。

java中比较两个对象不是用“==”吗?对于String a=”hello”;String b=”hello”,比较两个字符串是否相等,我们都知道必须用equals方法,而不是用==。 因为a,b是内存中两个不同的对象,他们指向两个内存中不同的地址,只是两个地址存的内容都相同罢了。如果用==比较,则比较的是两个对象的地址,很显然这里返回false,不是我们需要的。如果想返回true,就必须使用equals方法了。在这里String类里对父类Ojbect的equals方法进行了重写(见String类里的equals方法),比较的不再是地址,而是地址里所存的字符串的值。如果不对equals方法重写,调用的就是父类的equals方法,比较的还是两个对象的地址,同调用==一样。

对于值对象

......

java获取中文拼音–pinyin4j

发表于4年前(Dec 24, 2014 1:27:29 PM)  阅读 546  评论 0

分类: Java

标签: pinyin4j 拼音 汉语

我想大家肯定碰到过这种需求,要得到某个汉字的中文拼音,这个要是自己写的话,肯定不可能,网上也有不少解决方案,其中我觉得最好的就是使用一个开源的项目——pinyin4j。pinyin4j很强大,它能处理中文字符串,能输出声调,对于多音字,它也能输出它的所有可能读音,怎么样,很强大吧。

首先下载pinyin4j,地址http://sourceforge.net/proj

......