JSON REST WSO2 Data Service の作業を手伝ってくれることを願っています。v 3.0.1 とサンプル データ サービスを使用しています。私のやり方が間違っているのではないかと思います... productsSQL クエリにバインドされたリソース「products」を作成しました。XML REST リクエストは完全に機能しますが、JSON は機能しません:
- curl --request GET http://myserver.com:9763/services/samples/RDBMSSample.HTTPEndpoint/products -H コンテンツ タイプ:"application/json" 
戻り値
> "Fault":{"faultcode":"","faultstring":"No JSON message received
> through HTTP GET or POST","detail":""}}
- ソース コードからは、リクエスト URL に何らかのリクエスト ボディがあることが予想されるように見えるので (これは奇妙です)、次のクエリは次のようになります。 - curl --request GET http://myserver.com:9763/services/samples/RDBMSSample.HTTPEndpoint/products?q=emptyquery -H コンテンツ タイプ:"application/json" 
これはハングし、数分後にサーバーで次の例外が発生します。
> Feb 24, 2013 8:08:13 PM
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor run SEVERE:
> java.lang.ThreadDeath     at java.lang.Thread.stop(Thread.java:776)   at
> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.handleStuckThread(CarbonStuckThreadDetectionValve.java:121)
>   at
> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.backgroundProcess(CarbonStuckThreadDetectionValve.java:175)
>   at
> org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1387)
>   at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1566)
>   at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1576)
>   at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1555)
>   at java.lang.Thread.run(Thread.java:680)
- ただし、次のクエリは機能します。 - curl --data '{"employeesbynumber":{"employeenumber":{"$":"1002"}}}' http://myserver.com:9763/services/samples/RDBMSSample/ --header Content-Type: "application/json" --header SOAPAction:"urn:employeesByNumber"