Веб-сервис в Spring и среда портлетов

Я новичок в веб-сервисе и использую

  1. Spring 3.0 и Spring-webmvc-portlet 3.0
  2. javax.portlet 2.0

У меня есть контроллер следующим образом

@Controller(value = "myController")

@RequestMapping(value = "**VIEW**")

public class MyController {

 // Controller logic

}

Теперь я хочу создать веб-службу, используя RESTful API в среде портлетов. Подскажите, пожалуйста, как мне написать веб-службу, которая будет возвращать данные в формате JSON или XML.


Я все еще борюсь с тем, чтобы веб-служба не вызывала WS.

Я вставляю свои файлы conf

  1. 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>

  1. 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" />
    

  2. webServiceTest-servlet.xml

    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver"
        p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
    
    1. portlet.xml

    itemCatalog org.springframework.web.portlet.DispatcherPortlet text / html просмотр содержимого.Language-ext

  3. Контроллер

    @Controller общедоступный класс WebServiceTest {

    @RequestMapping (значение = "/ myWebService / testing", method = RequestMethod.GET) public String testMethod () {return "HELLO WORLD! SUCCESS"; }

    }

Я пытаюсь ударить

локальный: 8080: / myappname / myWebService / тестирование

Нет результата.


person Ketan    schedule 06.12.2011    source источник
comment
Могу ли я использовать конфигурацию DispatcherServlet? Чтобы настроить веб-службу   -  person Ketan    schedule 07.12.2011


Ответы (1)


Чтобы создать веб-службу в среде портлета. 1. Нам нужно использовать org. springframework.web.servlet.DispatcherServlet, который является фронт-контроллером для всех доступных контроллеров. Весь HTTP-запрос будет отправлен с помощью сервлета Dispatcher.

Добавьте запись в web.xml

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

    <servlet-mapping>
        <servlet-name>springwebservice</servlet-name>
        <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

Пожалуйста, перейдите по ссылке ниже для диспетчерского сервлета, внимательно прочтите

http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html

  1. Теперь, что важно, у каждого DispatcherServlet должен быть собственный WebApplicationContext. WebApplicationContext - это не что иное, как XML-файл, состоящий из контроллеров, преобразователя представлений, компонентов и т. Д.

Создайте файл с именем springwebservice-servlet.xml в WEB-INF. springwebservice-servlet.xml - это контекст WebApplicationContext.

Примечание

После инициализации DispatcherServlet Spring MVC ищет файл с именем [servlet-name] -servlet.xml в каталоге WEB-INF вашего веб-приложения и создает определенные там bean-компоненты, переопределяя определения любых bean-компонентов, определенных с тем же именем. в глобальном масштабе.

Убедитесь, что для DispatcherServlet создан новый WebAppicationContext, и настройте его в соответствии с потребностями.

Пожалуйста, помогите мне, если где-то ошиблись.

person Ketan    schedule 28.12.2011