Hi,
I did a test with the same app running in tuscany 1.4, all the paramaters
seems to be the same, including the SMD, and the JSON object from the URL
1.4 -
{"SMDVersion":".1","objectName":"AuthenticationService","serviceType":"JSON-RPC","serviceURL":"
http://localhost:8080/eed-sca-services/AuthenticationComponent/authentication
","methods":[{"name":"logoutUser","parameters":[]},{"name":"authenticate","parameters":[{"name":"param0","type":"STRING"}]}]}
2.0 -
{"SMDVersion":".1","objectName":"AuthenticationService","serviceType":"JSON-RPC","serviceURL":"
http://localhost:8080/eed-sca-sample-service/AuthenticationComponent/AuthenticationService/authentication
","methods":[{"name":"logoutUser","parameters":[]},{"name":"authenticate","parameters":[{"name":"param0","type":"STRING"}]}]}
and the JSON Object:
1.4
{"params":[{"intranetId":"[email protected]","firstName":"","lastName":"Grunin"}],"method":"authenticate","id":1}
2.0 -
{"params":[{"intranetId":"[email protected]","firstName":"","lastName":"Grunin"}],"method":"authenticate","id":1}
The error message changed to :
No path found for the transformation: JSON->java:complexType"
org.apache.tuscany.sca.databinding.TransformationException: No path found
for the transformation: JSON->java:complexType at
org.apache.tuscany.sca.databinding.impl.MediatorImpl.getTransformerChain(MediatorImpl.java:197)
at
org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:104)
at
org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:240)
at
org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:45)
at
org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPoint$LazyPullTransformer.transform(DefaultTransformerExtensionPoint.java:209)
at
org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:116)
at
org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediateInput(MediatorImpl.java:436)
at
org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:64)
at
org.apache.tuscany.sca.binding.jsonrpc.provider.JSONRPCServiceServlet.handleJSONRPCMethodInvocation(JSONRPCServiceServlet.java:307)
at
org.apache.tuscany.sca.binding.jsonrpc.provider.JSONRPCServiceServlet.handleServiceRequest(JSONRPCServiceServlet.java:177)
at
org.apache.tuscany.sca.binding.jsonrpc.provider.JSONRPCServiceServlet.service(JSONRPCServiceServlet.java:96)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at
org.apache.tuscany.sca.host.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:110)
at
org.apache.tuscany.sca.host.webapp.TuscanyServletFilter.doFilter(TuscanyServletFilter.java:94)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:837)
at
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
at
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
at java.lang.Thread.run(Thread.java:619) "
Simon Laws <[email protected]>
12/08/2010 10:07
To
Fabiano Amorim Oliveira/Brazil/i...@ibmbr
cc
Subject
Re: DOJO and Tuscany 2.0
On Wed, Aug 11, 2010 at 8:33 PM, <[email protected]> wrote:
I could start the application without errors and executing a dojo sample
base on what was provided.
When executing a request for a json-rpc request :
var authenticationService = new
dojo.rpc.JsonService("AuthenticationComponent/AuthenticationService/authentication?smd");
the line above returns:
{"SMDVersion":".1","objectName":"AuthenticationService","serviceType":"JSON-RPC","serviceURL":"
http://localhost:8080/eed-sca-sample-service/AuthenticationComponent/AuthenticationService/authentication
","methods":[{"name":"authenticate","parameters":[{"name":"param0","type":"STRING"}]},{"name":"logoutUser","parameters":[]}]}
var userProfile = new Object();
userProfile.intranetId = "[email protected]";
userProfile.firstName = "Galina";
userProfile.lastName = "Grunin";
authenticationService.authenticate(userProfile)
{"params":[{"intranetId":"[email protected]
","firstName":"Galina","lastName":"Grunin"}],"method":"authenticate","id":1}
The userProfile object is translated into a json object as stated above.
when executing the actual request it returns an error which I suspect is a
internal databinding error
error
Object { trace="org.apache.tuscany.sca....ava:58)\r\n ... 27 more\r\n",
more...}
code
490
msg
"org.codehaus.jackson.JsonParseException: Unexpected character ('U' (code
85)): expected a valid value (number, String, array, object, 'true',
'false' or 'null') at [Source: java.io.stringrea...@17fc253; line: 1,
column: 2]"
trace
"org.apache.tuscany.sca.databinding.TransformationException:
org.codehaus.jackson.JsonParseException: Unexpected character ('U' (code
85)): expected a valid value (number, String, array, object, 'true',
'false' or 'null') at [Source: java.io.stringrea...@17fc253; line: 1,
column: 2] at
org.apache.tuscany.sca.databinding.json.jackson.JSON2Object.transform(JSON2Object.java:61)
at
org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPoint$LazyPullTransformer.transform(DefaultTransformerExtensionPoint.java:209)
at
org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:116)
at
org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:240)
at
org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:45)
at
org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPoint$LazyPullTransformer.transform(DefaultTransformerExtensionPoint.java:209)
at
org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:116)
at
org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediateInput(MediatorImpl.java:436)
at
org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:64)
at
org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:66)
at
org.apache.tuscany.sca.binding.jsonrpc.provider.JSONRPCServiceServlet.handleJSONRPCMethodInvocation(JSONRPCServiceServlet.java:307)
at
org.apache.tuscany.sca.binding.jsonrpc.provider.JSONRPCServiceServlet.handleServiceRequest(JSONRPCServiceServlet.java:177)
at
org.apache.tuscany.sca.binding.jsonrpc.provider.JSONRPCServiceServlet.service(JSONRPCServiceServlet.java:96)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at
org.apache.tuscany.sca.host.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:110)
at
org.apache.tuscany.sca.host.webapp.TuscanyServletFilter.doFilter(TuscanyServletFilter.java:94)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:837)
at
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
at
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
at java.lang.Thread.run(Thread.java:619) Caused by:
org.codehaus.jackson.JsonParseException: Unexpected character ('U' (code
85)): expected a valid value (number, String, array, object, 'true',
'false' or 'null') at [Source: java.io.stringrea...@17fc253; line: 1,
column: 2] at
org.codehaus.jackson.JsonParser._constructError(JsonParser.java:943) at
org.codehaus.jackson.impl.JsonParserBase._reportError(JsonParserBase.java:632)
at
org.codehaus.jackson.impl.JsonParserBase._reportUnexpectedChar(JsonParserBase.java:565)
at
org.codehaus.jackson.impl.ReaderBasedParser._handleUnexpectedValue(ReaderBasedParser.java:429)
at
org.codehaus.jackson.impl.ReaderBasedParser.nextToken(ReaderBasedParser.java:192)
at
org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:1625)
at
org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:1580)
at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1130)
at
org.apache.tuscany.sca.databinding.json.jackson.JSON2Object.transform(JSON2Object.java:58)
... 27 more
Hi Fabiano
I'd first note that the input parameters that you report don't match the
required parameters as defined in the SMD that you provide. Having said
that that doesn't really explain why it's complaining about a "U"
character as I can't obviously see a "U" character in what you've
reported. What I would do to debug this is the following.
1. Make the parameters provided by the client match the parameters
required by the server
If this doesn't get you any further
2. trap the message on the wire with an HTTP sniffer to get a definitive
view of what characters the client is actually sending
3. debug the jsonrpc binding to see what characters are presented as the
array of message parameters added to the Tuscany message structure
4. debug the databinding transformer (from your stack
org.apache.tuscany.sca.databinding.json.jackson.JSON2Object) to see what
data the transformer is operating on.
Doing a quick Google this doesn't seem to be an obvious issue with
Jackson.
Regards
Simon
--
Apache Tuscany committer: tuscany.apache.org
Co-author of a book about Tuscany and SCA: tuscanyinaction.com