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

Reply via email to