Я новичок в веб-сервисе и использую
- Spring 3.0 и Spring-webmvc-portlet 3.0
- javax.portlet 2.0
У меня есть контроллер следующим образом
@Controller(value = "myController")
@RequestMapping(value = "**VIEW**")
public class MyController {
// Controller logic
}
Теперь я хочу создать веб-службу, используя RESTful API в среде портлетов. Подскажите, пожалуйста, как мне написать веб-службу, которая будет возвращать данные в формате JSON или XML.
Я все еще борюсь с тем, чтобы веб-служба не вызывала WS.
Я вставляю свои файлы conf
- web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/itemCatalog-portlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>view-servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.ViewRendererServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>view-servlet</servlet-name>
<url-pattern>/WEB-INF/servlet/view</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>webServiceTest</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>webServiceTest</servlet-name>
<url-pattern>/myWebService/*</url-pattern>
</servlet-mapping>
item-portlet.xml
<aop:aspectj-autoproxy /> <context:component-scan base-package="com.main.mypackage" /> <bean class="org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="webBindingInitializer"> <bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer"> <property name="propertyEditorRegistrars"> <list> <ref bean="myPropertyEditorRegistrar" /> </list> </property> </bean> </property> </bean> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basenames"> <list> <value>content.Language-ext</value> </list> </property> </bean> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean> <bean name="jsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"> <property name="prefixJson" value="false" /> </bean> <tx:annotation-driven transaction-manager="txManager" />
webServiceTest-servlet.xml
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
- portlet.xml
itemCatalog org.springframework.web.portlet.DispatcherPortlet text / html просмотр содержимого.Language-ext
Контроллер
@Controller общедоступный класс WebServiceTest {
@RequestMapping (значение = "/ myWebService / testing", method = RequestMethod.GET) public String testMethod () {return "HELLO WORLD! SUCCESS"; }
}
Я пытаюсь ударить
локальный: 8080: / myappname / myWebService / тестирование
Нет результата.