我在 Grails 中编写了一个应用程序,但我在使用石英时遇到了一些问题。我想从数据库中获取用户,然后再获取他的服务器。如果有任何服务器,我想在每个服务器上检查 PING 命令,但我收到如下消息:
工作运行外壳 ^ 549 | 跑 。. 在 org.quartz.simpl.SimpleThreadPool$WorkerThread
由 IllegalStateException 引起:未找到线程绑定请求:您是指实际 Web 请求之外的请求属性,还是在原始接收线程之外处理请求?如果您实际上是在 Web 请求中操作并且仍然收到此消息,则您的代码可能在 DispatcherServlet/DispatcherPortlet 之外运行:在这种情况下,请使用 RequestContextListener 或 RequestContextFilter 来公开当前请求。->> 131 | org.springframework.web.context.request.RequestContextHolder 中的 currentRequestAttributes"
这是我的代码:
def execute() {
pingService.checkPing()
}
def checkPing = {
User user = User.findByLogin(session.user.login) //get user
def hostsToPing = importFromDB()
if (!hostsToPing.isEmpty()) {
hostsToPing.each {host ->
doPing(host)
}
} else {
//something else
}
}
def importFromDB = {
User user = User.findByLogin(session.user.login)
def hostsList = Host.findAllByUser(user)
hostsList
}
def doPing(Host host) {
println "InetAdress: " + InetAddress.getByName(host.hostAdress)
println "InetAdress is Rea: " + InetAddress.getLocalHost().isReachable(1000)
}
当是这样的时候就不存在这个问题:
def doPing(Host host) {
println "InetAdress: " + InetAddress.getByName("www.google.com")
println "InetAdress is Reachable : " + InetAddress.getLocalHost().isReachable(1000)
}
有谁知道出了什么问题?