1

我正在尝试使用 jsonrpc4j json-rpc 库。不幸的是,它没有按预期工作......事实上,我的服务根本没有被映射。这是我的一些 servlet-context.xml,我正在使用 AnnotationMethodHandlerAdapter(也许这是问题所在?):

<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。

线索?

4

2 回答 2

0

不能直接打AssistenzaServices.json。如果你这样做,你肯定会得到404。您缺少JSONrpc-spring流。

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

于 2011-06-02T11:48:42.323 回答
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>
于 2012-08-16T08:50:45.767 回答