xmlbeans 根据xml实例生成schema并生成java映射

2008年09月17日

inst2xsd -enumerations never test.xml

scomp -out test.jar schema0.xsd

invoke spring proxy bean`s method

2008年08月14日
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import org.springframework.aop.support.AopUtils;
import org.springframework.util.MethodInvoker;

/**
*
* @author wangliang_gz@hotmail.com
* @version 1.1.0
*/
public class MethodUtils {

    static public Object invokeMethod(Object obj, String methodName,
            Object[] args) {

        if (AopUtils.isJdkDynamicProxy(obj)) {
            if (args == null) {
                args = new Object[0];
            }
            int arguments = args.length;
            Class parameterTypes[] = new Class[arguments];
            for (int i = 0; i < arguments; i++) {
                parameterTypes[i] = args[i].getClass();
            }

            Class _targetClass = AopUtils.getTargetClass(obj);

            Class[] _targetInterfaces = _targetClass.getInterfaces();
            Method method = null;
            for (int i = 0; i < _targetInterfaces.length; i++) {
                method = org.apache.commons.beanutils.MethodUtils
                        .getMatchingAccessibleMethod(_targetInterfaces[i], methodName,
                                parameterTypes);
                if (method != null) {
                    break;
                }
            }
            if (method == null) {
                method = org.apache.commons.beanutils.MethodUtils
                        .getMatchingAccessibleMethod(_targetClass, methodName,
                                parameterTypes);
            }
            try {
                // AopUtils.invokeJoinpointUsingReflection(obj, method, args);
                return java.lang.reflect.Proxy.getInvocationHandler(obj)
                        .invoke(obj, method, args);
            } catch (Throwable e) {
                throw new RuntimeException(e);
            }

        } else {
            try {
                MethodInvoker invoker = new MethodInvoker();
                invoker.setTargetObject(obj);
                invoker.setArguments(args);
                invoker.setTargetMethod(methodName);
                invoker.prepare();
                return invoker.invoke();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            } catch (NoSuchMethodException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            } catch (InvocationTargetException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            } catch (IllegalAccessException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
    }

}

java如何获得当前方法名

2008年08月14日

String _methodName =

new Exception().getStackTrace()[1].getMethodName();// 获得调用者的方法名

String _thisMethodName =

new Exception().getStackTrace()[0].getMethodName();// 获得当前的方法名

A JDBC pool connection leak was detected.

2008年03月15日

f环境:WLsp3,hibernate3.1.3,spring1.2.7 

at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
 at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6458)
 at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
 at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
 at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3661)
 at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2630)
 at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
 at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
Caused by: org.springframework.transaction.CannotCreateTransactionException:

Could not open Hibernate Session for transaction; nested exception is

org.hibernate.exception.GenericJDBCException: Cannot open connection
 at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:548)
 at org.springframework.transaction.support.AbstractPlatformTransactionManager.

getTransaction(AbstractPlatformTransactionManager.java:282)
 at org.springframework.transaction.interceptor.TransactionAspectSupport.

createTransactionIfNecessary(TransactionAspectSupport.java:225)
 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:89)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
 at org.springframework.aop.framework.

Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:643)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at org.apache.tapestry.listener.ListenerMap.invokeTargetMethod(ListenerMap.java:257)
 ... 30 more
Caused by: org.hibernate.exception.GenericJDBCException: Cannot open connection
 at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:91)
 at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:79)
 at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
 at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
 at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:307)
 at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:109)
 at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:134)
 at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)
 at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1236)
 at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:515)
 ... 43 more
Caused by: weblogic.jdbc.extensions.PoolLimitSQLException: weblogic.common.resourcepool.ResourceLimitException:

 No resources currently available in pool cp_ffp to allocate to applications, please increase the size of the pool and retry..
 at weblogic.jdbc.common.internal.JDBCUtil.wrapAndThrowResourceException(JDBCUtil.java:203)
 at weblogic.jdbc.pool.Driver.connect(Driver.java:161)
 at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:507)
 at weblogic.jdbc.jts.Driver.connect(Driver.java:139)
 at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:305)
 at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider

.getConnection(LocalDataSourceConnectionProvider.java:80)
 at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:304)
 ... 48 more
<2008-3-11 上午10时30分42秒 GMT> <Warning> <JDBC> <BEA-001074> <A JDBC pool connection leak was detected.

A connection leak occurs when a connection obtained from the pool was not closed explicitly by calling close()

and then was disposed by the garbage collector and returned to the connection pool. The following stack

trace at create shows where the leaked connection was created. 

 [Null exception passed, creating stack trace for offending caller]
 at weblogic.utils.StackTraceUtils.throwable2StackTrace(StackTraceUtils.java:28)
 at weblogic.jdbc.wrapper.PoolConnection.finalizeInternal(PoolConnection.java:84)
 at weblogic.jdbc.wrapper.PoolConnection_com_sybase_jdbc2_jdbc_SybConnection.finalize(Unknown Source)
 at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
 at java.lang.ref.Finalizer.runFinalizer(Unknown Source)
 at java.lang.ref.Finalizer.access$100(Unknown Source)
 at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

 

http://forums.bea.com/thread.jspa?threadID=200035670&start=105

据查此错误是由于连接池内存泄露导致,更换到spring2.0.8错误消失