我正在尝试使用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.
线索?
答案 0 :(得分:0)
您无法直接点击AssistenzaServices.json
。如果你这样做,肯定会得到 404 。
您缺少 JSONrpc-spring 流程。
您不会在浏览器中点击AssistenzaServices.json
,而是在配置时点击AssistenzaServices.html
或类似的内容。点击它之后,映射到.js
的java类和dojo AssistenzaServices.html
文件将会运行。 Dojo .js
文件serviceHandler将使用AssistenzaServices.json
映射一个类来获取要在AssistenzaServices.html
上显示的结果。
答案 1 :(得分: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>