mis98zb

BlogJava 首页 新随笔 联系 聚合 管理
  7 Posts :: 0 Stories :: 5 Comments :: 0 Trackbacks

2006年5月4日 #

在tomcat中输出log,有两种方式:

首先就是在log4j.properties中使用org.apache.log4j.ConsoleAppender方式输出。这样,log会输出到tomcat的标准输出log里边去。

还有就是使用org.apache.log4j.FileAppender一类的方式输出。这样就会输出到自己指定的文件里去。
这时候有一点需要注意:文件路径的问题。
在log4j.properties中把文件名设置为${catalina.base}/logs/YourFileName.log的话,就能输出到tomcat的log目录中(如果在eclipse的WDT中使用的话,就在workspace所在路径下的.metadata\.plugins\org.eclipse.wst.server.core\tmpX。X为数字,对应eclipse中设置的server的编号。)。
如果只指定一个文件名的话,就会输出到tomcat被启动时的目录中。
posted @ 2007-02-13 09:48 mis98zb 阅读(771) | 评论 (0)编辑 收藏

呵呵,用上spring2.0了,但是辛辛苦苦研究出来的1.2.x的配置方法也不忍心就这么扔了,放这里做个记录吧。
首先是基于Java5 Annotation的配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    
<import
        
resource="classpath:cn/com/nec/esmpro/gserver/util/database/database.beans.xml" />

    
<bean
        
class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">
        
<description>Switch AOP function ON!</description>
    
</bean>

    
<bean
        
class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">
        
<constructor-arg>
            
<bean class="org.springframework.transaction.interceptor.TransactionInterceptor">
                
<property name="transactionManager">
                    
<bean class="org.springframework.orm.hibernate3.HibernateTransactionManager">
                        
<property name="sessionFactory" ref="gserverSessionFactoryBean" />
                    
</bean>
                
</property>
                
<property name="transactionAttributeSource">
                    
<bean class="org.springframework.transaction.annotation.AnnotationTransactionAttributeSource"/>
                
</property>
            
</bean>
        
</constructor-arg>
    
</bean>
</beans>
然后是只使用XML的配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    
<import
        
resource="classpath:cn/com/nec/esmpro/gserver/util/database/database.beans.xml" />

    
<bean
        
class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">
        
<description>Switch AOP function ON!</description>
    
</bean>

    
<bean
        
class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">
        
<property name="classFilter">
            
<bean class="???????????????????????????????????????">
            
</bean>
        
</property>
        
<property name="transactionInterceptor">
            
<bean class="org.springframework.transaction.interceptor.TransactionInterceptor">
                
<property name="transactionManager">
                    
<bean class="org.springframework.orm.hibernate3.HibernateTransactionManager">
                        
<property name="sessionFactory" ref="gserverSessionFactoryBean" />
                    
</bean>
                
</property>
                
<property name="transactionAttributes">
                    
<props>
                        
<prop key="*">PROPAGATION_REQUIRED</prop>
                        
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
                    
</props>
            
</property>
            
</bean>
        
</property>
    
</bean>
</beans>

posted @ 2006-08-22 14:47 mis98zb 阅读(520) | 评论 (0)编辑 收藏

写了半天,老是出现config为null的问题:

1 2006-08-10 00:37:54,015 INFO [org.hibernate.cfg.AnnotationConfiguration] - Mapping package cn.com.nec.esmpro.gserver.author
2 2006-08-10 00:37:54,093 WARN [org.hibernate.cfg.AnnotationBinder] - Package not found or wo package-info.java: cn.com.nec.esmpro.gserver.author
3 2006-08-10 00:37:54,093 INFO [org.hibernate.cfg.AnnotationConfiguration] - Mapping package cn.com.nec.esmpro.gserver.source
4 2006-08-10 00:37:54,093 WARN [org.hibernate.cfg.AnnotationBinder] - Package not found or wo package-info.java: cn.com.nec.esmpro.gserver.source
5 2006-08-10 00:37:54,750 INFO [org.hibernate.cfg.AnnotationConfiguration] - Mapping package cn.com.nec.esmpro.gserver.user_support
6 2006-08-10 00:37:54,750 WARN [org.hibernate.cfg.AnnotationBinder] - Package not found or wo package-info.java: cn.com.nec.esmpro.gserver.user_support
7 2006-08-10 00:37:54,750 INFO [org.hibernate.cfg.Configuration] - Configured SessionFactory: null
不知道什么原因。
:(
posted @ 2006-08-10 00:41 mis98zb 阅读(1214) | 评论 (2)编辑 收藏

在使用DB4O的时候发现两个问题。
1         ObjectSet result = db.get(new Object());
2         for (Object obj : result) {
3             db.delete(obj);
4         }
5         db.commit();

第一行如果用
db.get(Object.class)
则一个对象都取不出来,
db.get(new Object());
却可以把对象都取出来。
然而更奇怪的是第三行能够删掉大部分对象,却删不掉存在数据库里的enum类型的对象。
真是奇怪了……

posted @ 2006-07-12 17:33 mis98zb 阅读(227) | 评论 (0)编辑 收藏

用laszlo IDE也有一段时间了,可惜一直不得其法,用的很是不爽。

正规的用法大概是这样的:
创建一个laszlo类型的工程,设置好LPS Web Root,就可以在这个工程里开发lzx类型的代码了。
需要调试的时候,选中需要调试的canvas类型的lzx文件,在右键菜单中选择Run As ——〉Laszlo Application。
它会打开默认浏览器,用以调试这个lzx文件。
posted @ 2006-06-01 13:28 mis98zb 阅读(545) | 评论 (0)编辑 收藏

以前用WebWork的时候,因为选择了xml + xslt的方式,所以就要把object映射到xml。
最初想偷偷懒,不打算使用配置文件。于是就自己写了一个obj2xml,遇到了两个问题:

☆首先就是环的问题。
xml是树形结构,不允许出现环的。而对象关系中,很容易出现环。比如
Parent.getChildren();
Child.getParent();
这样的代码。
我的解决方法是,在映射的时候,用hash map保存一个class到已知obj列表。不在已知列表里的,就先映射,然后加到已知obj列表里。在已知列表里的,就不再映射了。这样速度挺快,查找也方便。这个问题还算好解决。

☆接下来就是垃圾信息的屏蔽。
我是用get*来映射的(当然,集合类型会有特殊的处理)。
但是,get*方法中赫然有getClass存在!而Class类又有一堆get方法!这还算好办,直接屏蔽掉Class类型好了。
问题在于用户自己的一些无用信息。比如
DomainObject.getXXXService();
XXXServiceImpl.getYYYDAO();
YYYDAO.getZZZDAOSupport();
还有就是多余的信息。比如我只想得到用户的基本信息,可是
class Person {
    getName();
    getAge();
    getBirthday();
    getEducationRecord();
}


class EducationRecord{
    getMildSchool();
    getUnivercity();
}
这样一来,本来不需要的教育的信息就会被映射到。由于Person对象可能会关联到很多对象,那样就会有很多无用的信息被包含进来。
对于这种情况,首先的想法就是LazyLoading。对于一般的使用,这是没有问题的。但是我的需求是要把XML发送到客户端。客户端会使用XML中的哪些数据,我的映射程序没有办法捕捉到。因此LazyLoading就毫无用武之地了。
没有办法,只能把责任推倒对被映射的object,让它注意不要包含无用的数据。可是这样一来,就要专门为映射准备一些bean,然后用BeanUtil给他们赋值,再传递给obj2xml。

最后实在没有办法,干脆彻底抛弃我的obj2xml,自己写了一个xmlResult,使用vm来生成xml。
虽然为需要写一些vm,但是比起专门准备一堆bean再用obj2xml映射,还是要简单直接一些。
可能这也是没有什么特别好用的obj/xml映射工具的原因吧!
posted @ 2006-05-04 09:00 mis98zb 阅读(1270) | 评论 (2)编辑 收藏

最近终于想玩玩新技术了。试着用XFire做WS,用OpenLaszlo做客户端。
毫无疑问,当然使用的是XFire结合Spring的方式。
而且,作为一个地道的懒人,我首先就选择了最简单的基于SpringRPC的方式:

     < servlet >
        
< servlet-name > xfire </ servlet-name >
        
< servlet-class > org.springframework.web.servlet.DispatcherServlet </ servlet-class >
    
</ servlet >
可是这就带来了一个问题:
它是Document方式的,返回给客户端的数据都会被自动映射成XML。

呵呵,这就引起了我的兴趣。
以前我也曾经写过一个obj2xml的映射工具,看看XFire的有没有什么过人之处。

结果很令人失望,XFire连基本的环检测都没有做到,直接就用org.codehaus.xfire.aegis.type.basic.BeanType.writeObject()拼命写,一直写到java.lang.StackOverflowError。

看来还是不能偷懒,得研究一下XBean方式。
posted @ 2006-05-04 08:25 mis98zb 阅读(1182) | 评论 (1)编辑 收藏