小编Jyo*_*rup的帖子

为什么春天出现异常并且大多数是未经检查的异常?

可能重复:
为什么hibernate将HibernateException更改为RuntimeException(未选中)

将spring中的异常和hibernate保持为未经检查的异常的原因是什么?

只是为了减少编码时的混乱或者背后还有其他一些设计原理吗?

java spring hibernate exception

5
推荐指数
2
解决办法
5010
查看次数

DBMS_LOB.SUBSTR() 抛出“字符串缓冲区太小”错误

oracle 是否有根据 CLOB 字段的字节数获取子字符串的方法?

select DBMS_LOB.SUBSTR(a.COMMENTS, 3998, 1)
FROM FOO;
Run Code Online (Sandbox Code Playgroud)

我收到错误:

“ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小”

. 问题出在特殊字符上。每个新的特殊字符需要 8 个字节,所以当我将字符串限制减少到 3992 时,它就可以工作了。

DBMS_LOB.SUBSTR(a.COMMENTS, 3992, 1) works.
Run Code Online (Sandbox Code Playgroud)

出于测试目的,我放置了许多特殊字符,但它再次抛出相同的错误。

oracle 是否有任何方法可以根据字节数而不是字符数查找子字符串?

实际上,我们正在从表中获取数据,需要在 UI 上显示,限制为 4000 个字符。所以,我们只想获取前 4000 个字符。由于,一个字符大小为 1 个字节,我们可以容纳 4000 个字节。因此,如果我们使用DBMS_LOB.CONVERTTOBLOB,我们可能无法正确显示获取的字符串。我们可以以某种方式将其转换回字符字符串吗?

oracle oracle10g

5
推荐指数
1
解决办法
3万
查看次数

为什么在Python中没有定义UserSet类?

为什么python不提供UserSet扩展和定义用户定义Set的类。它确实提供了UserDictUserListUserString但没有UserSet

我指的是Python文档

python python-3.x

5
推荐指数
1
解决办法
198
查看次数

什么时候应该在java中使用finalize()方法?

我们什么时候应该在java中使用finalize()方法?

如果我们想在finalize()方法中关闭连接,那么最好使用下面的代码等待GC调用finalize()方法然后释放连接没有意义

try{
// Connection creation
}finally{
//close connection
}
Run Code Online (Sandbox Code Playgroud)

所以问题是finalize()方法今天有没有相关性?

java

4
推荐指数
1
解决办法
6383
查看次数

在Tomcat 6.0上加载持久会话时发生IOException

我们在flex中有一个应用程序,它部署在负载均衡的Tomcat 6.0上(有一个负载均衡器将请求传递给2个tomcat服务器).

访问应用程序时出现404错误.在挖掘tomat日志时,我们发现了以下错误

记录跟踪

2013-01-17 10:42:54,148 org.apache.catalina.session.ManagerBase - IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: bean.Login
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: bean.Login
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1332)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
..
2013-01-17 10:43:04,135 org.apache.catalina.session.ManagerBase - Exception loading sessions from persistent storage
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: bean.Login
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1332)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
…
Caused by: java.io.NotSerializableException: bean.Login
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
Run Code Online (Sandbox Code Playgroud)

原因

出现此错误的可能原因是Tomcat尝试在关闭时序列化所有活动会话的完整对象图,然后在您重新启动时尝试恢复它们.这方面的关键是Tomcat使用"普通"java对象序列化,这要求所有对象都是Serializable.

我们已经在Spring中映射了Login bean,如下所示

<bean id="currLogin" class="bean.Login" scope="session">
      <aop:scoped-proxy />
</bean>
Run Code Online (Sandbox Code Playgroud)

补救

短期

  • 删除catalina_home/work目录中的文件session.ser
  • 重启tomcat服务器

在弹出服务器后,我们可以在没有错误的情况下登录应用程序.

长期

  • 通过实现Serializable接口使bean.Login可序列化.
  • 没有Tomcat序列化会话(在应用程序中或在元素内部的conf /目录中的全局tomcat context.xml中添加到context.xml.

请告诉我们解决此问题的方法?

java spring tomcat

4
推荐指数
1
解决办法
1万
查看次数

java中静态方法覆盖的奇怪情况

它写在任何地方都不能覆盖静态方法,但是当我尝试减少访问说明符时,从public到protected,它会产生错误.例如

public class StaticOverrideFunda {

    public static void foo(){
        System.out.println("Parent Foo");
    }
}

public class B extends StaticOverrideFunda{


    protected static void foo(){
        System.out.println("Child Foo");
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        B.foo();            
    }
}
Run Code Online (Sandbox Code Playgroud)

它说

无法降低继承方法的可见性

因此,它是遵循最重要的规则,为什么我们说foo没有在B类中被覆盖?为什么我们说它隐藏/阴影而不是覆盖?

java overriding

3
推荐指数
1
解决办法
344
查看次数

如果序列化是在层次结构中继承的,那么将调用未实现serializable的类的构造函数.为什么会这样?

为什么在反序列化时调用Food and Fruit类的构造函数,因为在下面的示例中没有调用SkinFruit和Banana2的构造函数?

假设我有以下类层次结构

class Food{
  public Food() { System.out.println("1"); } 
    }

class Fruit extends Food {
    public Fruit() { System.out.print("2"); }
}

class SkinFruit extends Fruit implements Serializable{
    SkinFruit() { System.out.print("3"); }
}
public class Banana2 extends SkinFruit { 
  private static final long serialVersionUID = 1L;
  int size = 42;

     public static void main(String [] args) {
       Banana2 b = new Banana2();
       FileOutputStream fost;
        try {
            fost = new FileOutputStream(new File("d:/testbanana.ser"));
            ObjectOutputStream oostr= new ObjectOutputStream(fost);
            oostr.writeObject(b);
            oostr.flush();          
            oostr.close();
        } …
Run Code Online (Sandbox Code Playgroud)

java serialization

0
推荐指数
1
解决办法
2231
查看次数

在java中调用Thread实例上的wait()

如果我们在Thread类的实例上调用wait()方法会发生什么.

Thread t1 = new MyThread();
t1.wait();
Run Code Online (Sandbox Code Playgroud)

我的线程t1的状态是什么?

java multithreading

0
推荐指数
1
解决办法
2325
查看次数