2011-05-26 142 views
1

我想使用jsonrpc4j json-rpc库。不幸的是,它不能按预期的那样工作...... 事实上,我的服务根本没有被映射。下面是一些我的servlet-context.xml中的,我使用AnnotationMethodHandlerAdapter上(也许这是什么问题?):jsonrpc4j在春季映射不起作用

<bean id="assistenzaJsonService" 
     class="it.jsoftware.jacciseweb.assistenza.jsonrpcservices.AssistenzaJSonServiceImpl"></bean> 

    <bean name="/AssistenzaServices.json" class="com.googlecode.jsonrpc4j.spring.JsonServiceExporter"> 
     <property name="service" ref="assistenzaJsonService" /> 
     <property name="serviceInterface" 
      value="it.jsoftware.jacciseweb.assistenza.jsonrpcservices.AssistenzaJSonService" /> 
    </bean> 

应用在hostname.com/Appname映射,如果我尝试hostname.com/Appname /AssistenzaServices.json我得到404.

线索?

回答

0

您不能直接点击AssistenzaServices.json。如果你这样做,你一定会得到。 您缺少JSONrpc-spring流程。

而不是在浏览器中打AssistenzaServices.json,你会打AssistenzaServices.html或类似的东西,当你配置的东西。在你点击它之后,java类和映射到AssistenzaServices.html的dojo .js文件将启动。 Dojo .js file serviceHandler将使用AssistenzaServices.json来映射一个类以获取结果以显示在AssistenzaServices.html上。

0

jsonrpc4j主页上的示例假定您使用“BeanNameUrlHandlerMapping”。 我用“SimpleUrlHandlerMapping建立”,它给了我一个404

我解决它通过添加这个到servlet.xml中

<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> 

,并将它与下面的代码(接口配置为gotch4)工作:

<script type="text/javascript"> 
     dojo.require("dojox.rpc.Service"); 
     dojo.require("dojox.rpc.JsonRPC"); 

     service = new dojox.rpc.Service({ 
      envelope : "JSON-RPC-1.0", 
      transport : "POST", 
      target : "http://localhost:8080/ajax/json/UserService.json", 
      services : { 
       helloSir : { 
        parameters : [ { 
         type : "string" 
        } ] 
       } 
      } 
     }); 

     var response = service.helloSir("victorius"); 
     console.log(response); 
    </script>