0

Grails からアクセスしたい SOAP Web サービスを作成しました。

オブジェクト WSClient を使用するために、プラグイン ws-client をインストールしました。

ここに示す例を試してみました: http://groovy.codehaus.org/Using+WSClient+in+Grails

だから私のコードは次のとおりです。

def index = { 

def proxy = new WSClient("http://www.w3schools.com/webservices/tempconvert.asmx?WSDL", this.class.classLoader)
proxy.initialize()

def result = proxy.CelsiusToFahrenheit(0) 
result = "You are probably freezing at ${result} degrees Farhenheit" 
flash.message = result 
}

これは私が得るエラーです:

 javac: target release 1.5 conflicts with default source release 1.7
| Error 2013-02-27 17:47:06,901 [http-bio-8080-exec-10] ERROR errors.GrailsExceptionResolver  - JAXBException occurred when processing request: [POST] /WordGame/game/create
"org.tempuri" doesnt contain ObjectFactory.class or jaxb.index. Stacktrace follows:
Message: "org.tempuri" doesnt contain ObjectFactory.class or jaxb.index
    Line | Method
->>  197 | createContext in com.sun.xml.bind.v2.ContextFactory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    172 | newInstance   in javax.xml.bind.ContextFinder
|    132 | newInstance . in     ''
|    334 | find          in     ''
|    431 | newInstance . in javax.xml.bind.JAXBContext
|    349 | createClient  in org.apache.cxf.endpoint.dynamic.DynamicClientFactory
|    196 | createClient  in     ''
|    175 | createClient  in     ''
|    198 | createClient  in groovyx.net.ws.AbstractCXFWSClient
|    107 | initialize    in groovyx.net.ws.WSClient
|     30 | conversion .  in wordgame.GameController$$ENyfXWG9
|     42 | doCall        in wordgame.GameController$_closure1$$ENyfXWG9
|    195 | doFilter . .  in grails.plugin.cache.web.filter.PageFragmentCachingFilter
|     63 | doFilter      in grails.plugin.cache.web.filter.AbstractFilter
|   1110 | runWorker . . in java.util.concurrent.ThreadPoolExecutor
|    603 | run           in java.util.concurrent.ThreadPoolExecutor$Worker
^    722 | run . . . . . in java.lang.Thread

メソッド proxy.CelsiusToFahrenheit(0) を呼び出してもエラーがないことはわかっています。これは、同じエラーが発生したためです。

def proxy = new WSClient("http://www.w3schools.com/webservices/tempconvert.asmx?WSDL", this.class.classLoader)
proxy.initialize()

作成した他の Web サービスを試してみましたが、同じエラーが発生しました。

Google で検索したところ、多くの人がこの問題を抱えているのを見てきましたが、修正方法が見つかりませんでした。

構成: Windows 7 x64 Netbeans 7.2.1 Grails 2.2.0

誰かがこの問題を解決する方法を知っていますか?

4

2 に答える 2

1

回答ありがとうございますが、問題はプラグインにありました。動作させるには、プラグインをインストールする必要がありました:

cxf

cxf クライアント

これら 2 つのプラグインをインストールすると、問題が解決しました。

于 2013-02-28T18:27:14.200 に答える
0

エラーメッセージから

javac: target release 1.5 conflicts with default source release 1.7

JDKのバージョンについてだと思います。WSClient は実行時に何かをコンパイルするために JDK を必要とするため、それをサポートするにはバージョン 1.7 の JDK をデプロイする必要があります。

于 2013-02-28T03:32:54.897 に答える