Java 春季服务中出现异常的地方

Java 春季服务中出现异常的地方,java,spring,sockets,Java,Spring,Sockets,我已经用纯Java(没有框架,只有套接字通信)为服务器应用程序构建了一个客户端库,这个客户端库在Spring应用程序中使用 我正在调试一个问题,我的客户端库将捕获一个异常,该异常似乎是在一个不相关的服务中抛出的 例如,假设ServiceClient是我的客户端库的包装,而ServiceDB是数据库服务。然后可能发生以下情况: ServiceDB获取一个SQL错误,但未捕获该错误 ServiceClient中的库在读取套接字或从套接字发送时捕获了一个异常,但该异常的消息是一个SQL错误 但是Ser

我已经用纯Java(没有框架,只有套接字通信)为服务器应用程序构建了一个客户端库,这个客户端库在Spring应用程序中使用

我正在调试一个问题,我的客户端库将捕获一个异常,该异常似乎是在一个不相关的服务中抛出的

例如,假设
ServiceClient
是我的客户端库的包装,而
ServiceDB
是数据库服务。然后可能发生以下情况:

  • ServiceDB
    获取一个
    SQL错误
    ,但未捕获该错误
  • ServiceClient
    中的库在读取套接字或从套接字发送时捕获了一个
    异常
    ,但该异常的消息是一个
    SQL错误
  • 但是
    ServiceClient
    根本不依赖或使用SQL。此外,
    ServiceClient
    ServiceDB
    之间没有依赖关系。如果将
    ServiceDB
    替换为web套接字服务或类似服务,也会发生同样的情况

    有时,我确实看到
    DestroyJavaVM
    线程正在运行,我认为这表明Spring正在试图关闭。但是,我不能肯定每次发生此问题时都会运行此线程,因此它可能是无关的

    我怀疑这可能是由一些潜在的Spring行为引起的,但我不知道是什么引起的


    我的问题是:什么会导致我的服务捕获异常,这些异常似乎是由完全无关的模块引起的?

    我只知道您有一个客户端库,它被另一方使用,并且在底层基础架构(数据库、网络)运行时抛出异常fails-这是预期的行为-通常情况下,您要么包装底层的异常(指定它们可能发生—“如果出现故障,此方法可能会在javadoc中抛出IOException(此语句包括io错误的更特定子类的情况”),要么让它们通过,如果你的逻辑不知道如何处理这个异常,那么问题是什么?Boris,我已经更新了这个问题,如果不清楚,请告诉我。我想你误解了我的问题,因为它措词不当,“如果用web套接字服务或类似服务替换ServiceDB,会发生同样的事情”是什么意思?如果您的代码调用另一个服务,它可以向您抛出异常,即使是通过服务接口层。另一个库是否被注入到您的代码中以供使用?您使用哪种通信方式?RMI?直接插座到插座?异常可以序列化并通过RMI发送到客户端。向我们展示此“奇怪”异常的堆栈跟踪。我只知道您有一个客户端库,它被另一方使用,并且在底层基础结构(数据库、网络)出现异常时抛出异常fails-这是预期的行为-通常情况下,您要么包装底层的异常(指定它们可能发生—“如果出现故障,此方法可能会在javadoc中抛出IOException(此语句包括io错误的更特定子类的情况”),要么让它们通过,如果你的逻辑不知道如何处理这个异常,那么问题是什么?Boris,我已经更新了这个问题,如果不清楚,请告诉我。我想你误解了我的问题,因为它措词不当,“如果用web套接字服务或类似服务替换ServiceDB,会发生同样的事情”是什么意思?如果您的代码调用另一个服务,它可以向您抛出异常,即使是通过服务接口层。另一个库是否被注入到您的代码中以供使用?您使用哪种通信方式?RMI?直接插座到插座?异常可以序列化并通过RMI发送到客户端。向我们显示此“奇怪”异常的堆栈跟踪。