Spring remoting和restful urls

时间:2015-05-25 19:39:30

标签: java spring rest spring-mvc

我有一个正在运行的应用程序,使用Spring远程处理HttpInvoker来公开服务。

我在web.xml中有这个定义:

<servlet>
    <servlet-name>remoting</servlet-name>
    <servlet class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>remoting</servlet-name>
    <url-pattern>/remoting/*</url-pattern>
</servlet-mapping>

服务出口商:

<bean name="/AccessMgtService" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
    <property name="service" ref="employeeService"/>
    <property name="serviceInterface" value="com.xxx.service.EmployeeService"/>
</bean>

在客户端:

<bean id="remoteAccessService" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
    <property name="serviceUrl" value="http://localhost:8180/HRManRemote/remoting/EmployeeService"/>
    <property name="serviceInterface" value="com.xxx.service.EmployeeService"/>
</bean> 

我现在已经为我的HRManRemote应用程序添加了Restful服务。

我的请求映射如下:

@Controller
public class EmployeeController {

@RequestMapping(value="/rest/employees", method=RequestMethod.GET)
@ResponseBody List<Employee> getEmployees() {
...

}

我遇到了网址格式的问题。我无法弄清楚应该使用哪个url来调用Rest服务。

http://localhost:8180/HRManRemote/remoting/rest/employees

也不http://localhost:8180/HRManRemote/rest/employees

的工作。服务器告诉我没有为此URL定义资源

你认为我应该使用什么网址? 我应该使用不同的请求映射吗?

非常感谢提前

吉勒

2 个答案:

答案 0 :(得分:0)

编辑您的调度程序servlet映射,如下所示:

<servlet-mapping>
    <servlet-name>remoting</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

从浏览器点击http://localhost:8180/HRManRemote/rest/employees并确保在弹簧配置文件中扫描EmployeeController

答案 1 :(得分:0)

我希望以下内容:http://localhost:8180/HRManRemote/remoting/AccessMgtService/rest/employees

我认为您的网站名为HRManRemote,您将被绑定到端口8180?如果是这样,那么远程处理来自web.xml,来自bean配置的AccessMgtService,以及来自Controller的其余部分