首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从grails请求wsdl文件时出错

从grails请求wsdl文件时出错
EN

Stack Overflow用户
提问于 2012-01-25 20:59:48
回答 1查看 800关注 0票数 2

我使用的是: Grails插件,我创建了包含以下代码的服务手机:services/MobileService.groovy

代码语言:javascript
复制
package survey

class MobileService {
    static expose=['xfire'];
    static transactional = true;
    Choice getChoices(String questionTitle_){
        return Questions.findByQuestionTitle(questionTitle_);
    }
}

UrlMappings.groovy

代码语言:javascript
复制
class UrlMappings {

    static mappings = {
        "/$controller/$action?/$id?"{
            constraints {
                controller(matches:/.*[^(services)].*/)
            }
        }
        "/"(view:"/index")
        "500"(view:'/error')
    }
}

我可以在这里看到WSDL文件的XML内容:http://127.0.0.1:8080/survey/services/mobile?wsdl,但是我不能使用我的客户端读取它,我有以下错误

错误2012-01-25 22:42:12,826 "http-bio-8080"-exec-2 ERROR /survey.XFireServlet - Servlet.service()在路径/survey的上下文中抛出异常消息:绑定到java.util.concurrent.ThreadPoolExecutor$Worker中的线程"http-bio-8080"-exec-2 Line Line Method ->> 886 ->>886 runTask的键/survey没有值。在java.lang.Thread中

在更改客户端之后,结果是SOAP服务器和客户端现在工作正常。这个错误并没有影响服务器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-20 17:45:42

这个jira中的问题及解决方案

对我有用的黑客:

代码语言:javascript
复制
def doWithWebDescriptor = { xml ->
    def filters = xml.filter
    def filterMappings = xml.'filter-mapping'
    def servlets = xml.servlet
    def servletMappings = xml.'servlet-mapping'

    // define hibernate's OpenSessionInViewFilter
    def hibernateFilter = 'hibernateFilter'

    // Here's the modification I made per the JIRA:
    /*
    filters[filters.size()-1] + {
        filter {
            'filter-name'(hibernateFilter)
            'filter-class'('org.grails.xfire.OpenSessionInViewFilter')
        }
    }
    filterMappings[filterMappings.size()-1] + {
        'filter-mapping' {
            'filter-name'(hibernateFilter)
            'url-pattern'("/services/*")
        }
    }
    */

    def xfireServlet = 'XFireServlet'
    servlets[servlets.size()-1] + {
        servlet {
            'servlet-name'(xfireServlet)
            'servlet-class'('org.grails.xfire.XFireSpringServlet')
            'load-on-startup'(1)
        }
    }
    servletMappings[servletMappings.size()-1] + {
        'servlet-mapping' {
            'servlet-name'(xfireServlet)
            'url-pattern'("/services/*")
        }
    }
    servletMappings[servletMappings.size()-1] + {
        'servlet-mapping' {
            'servlet-name'(xfireServlet)
            'url-pattern'("/servlet/XFireServlet/*")
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9010226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档