关于hibernate延时加载

发表于3年前(Dec 24, 2014 1:51:36 PM)  阅读 418  评论 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冲突

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

分类: Java

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

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

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

Java FTP下载文件

发表于3年前(Dec 24, 2014 1:49:20 PM)  阅读 400  评论 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
......

禁用页面缓存

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

分类: Java

标签: no-cache 页面缓存

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

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

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

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

 

 

 

......

Spring使用weblogic中配置的数据源

发表于3年前(Dec 24, 2014 1:45:04 PM)  阅读 487  评论 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跟spring.jar冲突

发表于3年前(Dec 24, 2014 1:43:32 PM)  阅读 410  评论 0

分类: 开发运维环境

标签: Weblogic 包冲突 ModuleException

weblogic.application.ModuleException: at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:891) at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:333) at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26) at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60) Truncated. see log file for complete stack

......

weblogic跟hibernate3冲突HqlToken

发表于3年前(Dec 24, 2014 1:42:27 PM)  阅读 418  评论 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"&
......

linux系统安装weblogic部署web应用

发表于3年前(Dec 24, 2014 1:31:08 PM)  阅读 531  评论 0

分类: 开发运维环境

标签: Weblogic linux

最近因为服务器很多人并发访问,压力剧增,天天报警,领导决定更换web应用服务器,由以前的32位的2003换成64位的linux。初步决定系统用red hat5.6,weblogic10.3.3,让我先测试应用是否兼容。大家都知道java是跨平台的,理论上从windows换linux是没问题的,为了稳妥起见,还是做下测试部署好。于是我在我自己机上搭了一个虚拟环境进行测试,以下则是遇到的一些问题,以及解决方案。

首先我在电驴下面下了个red hat5.6服务器版,上面版本比较多,比较杂,下的是32位,因为我的机不支持64位,文件名是[红帽企业Linux.5.6].rhel-server-5.6-i386-dvd.ISO,大家有兴趣的话,可以去电驴里面下ed2k://|file|%5B%E7%BA%A2%E5%B8%BD%E4%BC%81%E4%B8%9ALinux.5.6%5D.rhel-server-5.6-i386-dvd.iso|3188559872|adcbbf2a2bfa49b4fcd73d9445352b0e|h=fw2m46jbxoykhxopsiq

......

eclipse中设置新建jsp页面时的默认编码

发表于3年前(Dec 24, 2014 1:30:16 PM)  阅读 309  评论 0

分类: 开发运维环境

标签: jsp页面编码

在eclipse中新建一个jsp页面时,一般默认的编码不是utf-8,而我们一般项目都是统一采用utf-8编码,如果要一个个改很麻烦,大家一般都会想到如果更改默认设置,网上一般说法是:windows-preferences-general-content types-text-jsp那里设置默认编码,我试过我的不行,必须在windows-preferences-web-jsp files-encoding那里设置默认编码。不同版本的eclipse或myeclipse可能不同,多找找应该还是能找到。

修改jboss、weblogic内存占用大小

发表于3年前(Dec 24, 2014 1:29:30 PM)  阅读 414  评论 0

分类: 开发运维环境

标签: Weblogic JBoss 内存占用

JBoss:打开JBoss安装目录下的bin目录,找到run.bat或run.sh,找到下面一行:
set JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx1536m -XX:MaxNewSize=256m -XX:MaxPermSize=128m
按照自己需求修改就行了。

Weblogic:1、修改某个单独域的内存占用大小,以base_domain为例,打开C:\bea\user_projects\domains\base_domain\bin目录下的setDomainEnv.cmd或setDomainEnv.sh,找到下面几行,按需修改:
set MEM_ARGS=-Xms256m -Xmx512m

if “%JAVA_VENDOR%”==”Sun” (
if “%PRODUCTION_MODE%”==”” (
set MEM_DEV_ARGS=-XX

......