Веб-сервис в среде Spring и портлетов - PullRequest
3 голосов
/ 06 декабря 2011

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

  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

}

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


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

Я вставляю свой конф.файлы

  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 view content.Language-ext

  3. Controller

    @ Открытый класс контроллера Controller WebServiceTest {

    @ RequestMapping (value = "/ myWebService / testing", method = RequestMethod.GET) public String testMethod () {return "HELLO WORLD! SUCCESS";}

    }

Я пытаюсь перейти с

localhost: 8080: / myappname / myWebService / testing

Получение нетрезультат.

1 Ответ

0 голосов
/ 28 декабря 2011

Создание веб-службы в среде портлета. 1. Нам нужно использовать орг. 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, и настройте его в соответствии с необходимостью.

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

...