отображение jsonrpc4j весной не работает - PullRequest
1 голос
/ 26 мая 2011

Я пытаюсь использовать библиотеку 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.

Улики

Ответы [ 2 ]

0 голосов
/ 16 августа 2012

В примере на домашней странице 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>
0 голосов
/ 02 июня 2011

Вы не можете напрямую нажать AssistenzaServices.json. Если вы сделаете это, вы обязательно получите 404 . Вам не хватает JSONrpc-spring flow.

Вместо того, чтобы нажимать AssistenzaServices.json в браузере, вы будете нажимать AssistenzaServices.html или что-то подобное при настройке. После того, как вы нажмете на него, в действие вступят класс java и файл dojo .js, сопоставленный с AssistenzaServices.html. Dojo .js file serviceHandler будет использовать AssistenzaServices.json для сопоставления класса с извлечением результатов для показа на AssistenzaServices.html.

...