我正在开发一个在 Oracle OCCAS 平台上运行的 SipServlet。我需要实现一个计时器,以便当它被触发(即过期)时,会采取一组特定的操作。查看 SIPServlet 2.0 API,似乎在 API 中实现的 TimerService 和 TimerListener 可以解决问题。servlet 确实实现了 TimerListener 接口,使用了 sip 注释 @SipListener 并且在 servlet 类中重写了 timeout 方法。在 servlet 类中,我们使用 doInvite 保护方法处理邀请消息。所看到的行为是直到 doInvite 方法中的所有处理都执行完毕后才会执行 timeout 方法。我们想要的处理是当定时器到期时,doInvite 方法中的处理停止,由 timeout 方法接管。这是正常行为还是我错过了什么?