2012-01-25 14 views
2

からWSDLファイルを要求しているときにエラーを持つ: Grailsの のXFireプラグイン を、私は次のコードを含むサービスモバイル作成: サービス/ MobileService.groovy私が使用しているGrailsの

package survey 

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

UrlMappingsを

class UrlMappings { 

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

の.groovy私はここでWSDLファイルのXMLコンテンツを見ることができます:をhttp://127.0.0.1:8080/survey/services/mobile?wsdl しかし、私はそれは私のクライアントを使用して、私は次のエラー抱えて読み込むことができません。

エラー2012-01-25 22:42:12826 [ "HTTP-バイオ-8080" を - exec/2]エラー [/survey].[XFireServlet] - サーブレットのServlet.service() [XFireServlet]がパス[/ survey]のコンテキストで例外をスローしましたメッセージ: キー[org.hibernate.impl。 SessionFactoryImpl @ 4af6178d]スレッドにバインドされた ["http-bio-8080" -exec-2] Line |方法 - >> 886 | java.util.concurrent.ThreadPoolExecutor $ WorkerのrunTask - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 908 | ''^680で走る|走る。 java.lang.Threadで

クライアントを変更した後、SOAPサーバーとクライアントが正常に動作していることが判明しました。 そのエラーはサーバーに影響していませんでした。

答えて

0

問題と解決策は、私の作品this jira

ハックで説明されています

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/*") 
     } 
    } 
} 
関連する問題