和一般的web服务器不同,WebSphere的类装入器方式有两种方式:PARENT_FIRST和PARENT_LAST。默认值是PARENT_FIRST,这种方式在载入当前classpath的类之前先载入其上一级classloader能够装入的类。这是标准的JVM classloader的默认策略。如果采用PARENT_LAST,则过程正好相反,即先载入当前classpath的类,再载入其上一级classloader能够装入的类,这样可以用当前classpath中更新的类覆盖其上一级classloader的相同类。受类装入器方式影响的classloader包括application classloader、WAR classloader以及共享类库的classloader。
你可以尝试把他的类装入器方式改为PARENT_LAST试试具体操作为: 打开服务器->应用程序->选择对应的应用程序->修改类装入器方式

解决方案 »

  1.   

    SRVE0026E: [Servlet 错误]-[Dispatcher]:java.lang.NullPointerException at oracle.jdbc.dbaccess.DBDataSetImpl.clearItem(DBDataSetImpl.java(Compiled Code)) at oracle.jdbc.driver.OraclePreparedStatement.clearParameters(OraclePreparedStatement.java(Compiled Code)) at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement(WSJdbcConnection.java(Compiled Code)) at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement(WSJdbcConnection.java(Compiled Code)) at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:431) at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:93) at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:86) at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:169) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2038) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2417) at org.hibernate.action -- <truncated> --
      

  2.   

    问题解决了是oracle驱动的问题
    ----------------
    jdbc.dbaccess.DBData.clearItem
    之前的驱动
     public void clearItem(int i)
        {
            if(m_dynamic && m_vector != null && i < m_vector.size())
                m_vector.removeElementAt(i);
            if(m_items == null && i >= m_items.length)
            {
                return;
            } else
            {
                m_items[i] = null;
                return;
            }
        }
    这个方法错了
    应该是:
     public void clearItem(int i)
        {
            if(m_dynamic && m_vector != null && i < m_vector.size())
                m_vector.removeElementAt(i);
            if(m_items == null || i >= m_items.length)
            {
                return;
            } else
            {
                m_items[i] = null;
                return;
            }
        }