I’m using:
Grails
xfire plugin
and I created the service mobile containing the following code:
services/MobileService.groovy
package survey
class MobileService {
static expose=['xfire'];
static transactional = true;
Choice getChoices(String questionTitle_){
return Questions.findByQuestionTitle(questionTitle_);
}
}
UrlMappings.groovy
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?"{
constraints {
controller(matches:/.*[^(services)].*/)
}
}
"/"(view:"/index")
"500"(view:'/error')
}
}
I can see XML content of WSDL file here:
http://127.0.0.1:8080/survey/services/mobile?wsdl
But I can’t read it using my client and I’m having the following error:
Error 2012-01-25 22:42:12,826 [“http-bio-8080”-exec-2] ERROR
[/survey].[XFireServlet] – Servlet.service() for servlet
[XFireServlet] in context with path [/survey] threw exception Message:
No value for key [org.hibernate.impl.SessionFactoryImpl@4af6178d]
bound to thread [“http-bio-8080″-exec-2] Line | Method
->> 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – | 908 | run in ” ^ 680 | run . . in java.lang.Thread
After changing the client it turned out that the SOAP server and client is working fine now.
That error wasn’t effecting the server.
Problem and solution are described in this jira
Hack that works for me: