2015-05-25 1 views
0

У меня есть работающее приложение, предоставляющее услуги с помощью Spring remoting HttpInvoker.Весенние удаленные и успокаивающие URL-адреса

У меня есть это определение в 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> 

Я теперь добавил RESTful сервис к моему приложению HRManRemote.

У меня есть отображение запроса, как это:

@Controller 
public class EmployeeController { 

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

} 

У меня есть проблема с рисунком URL. Я не могу понять, какой URL следует использовать для вызова службы Rest.

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

ни http://localhost:8180/HRManRemote/rest/employees

работы. Сервер сообщает мне, что для этого URL-адреса не задан ресурс

Какой адрес, по вашему мнению, я должен использовать? Должен ли я использовать другое сопоставление запросов?

Большое спасибо заранее

Жиль

ответ

0

Редактировать диспетчеру отображение сервлета, как показано ниже:

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

И ударил http://localhost:8180/HRManRemote/rest/employees из браузера, а также убедитесь, что сканирование EmployeeController в файле конфигурации пружины.

+0

Спасибо. Я проверю это. Но тогда, как мне позвонить в HttpInvoker, поскольку удаленный доступ происходит из web.xml? Должен ли я удалять удаленный доступ из вызова HttpInvoker? – Gilles

0

Я бы ожидать следующее: http://localhost:8180/HRManRemote/remoting/AccessMgtService/rest/employees

Я полагаю, ваш сайт называется HRManRemote и вы привязан к порту 8180? Если это так, то удаленный доступ происходит из web.xml, AccessMgtService из конфигурации компонента, а остальная часть из контроллера

+0

Я видел, как ответ Арпита пришел в голову. Определенно убедитесь, что проверка компонентов находится в вашей конфигурации пружины, поэтому она выбирает это. –

+0

Спасибо. Я попробую оба решения и дам вам знать. В URL-адресе, который вы предлагаете, AccessMgtService - это имя службы, вызываемой http invoker. – Gilles

Смежные вопросы