0

1. Web の検索から、Spring を gwt で使用するには、デフォルトの DispatcherServlet を org.spring4gwt.server.SpringGwtRemoteServiceServlet に置き換える必要があることを理解しています。しかし、すべての geomajas ( spring + gwt を使用する) の例は、実際には置き換えられるはずの DispatcherServlet を使用しています。どうすればそれもできますか?.

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
    <display-name>Geomajas application</display-name>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            <!-- framework context -->
            classpath:org/geomajas/spring/geomajasContext.xml

            <!-- use rasterizing -->
            classpath:org/geomajas/plugin/rasterizing/DefaultRasterizedPipelines.xml

            <!-- application context -->
            WEB-INF/applicationContext.xml
            WEB-INF/layerOsm.xml
            WEB-INF/mapOsm.xml
       </param-value>
    </context-param>

    <filter>
        <filter-name>CacheFilter</filter-name>
        <filter-class>org.geomajas.servlet.CacheFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>CacheFilter</filter-name>
        <url-pattern>*</url-pattern>
    </filter-mapping>

    <!-- only needed for direct GWT -->
    <listener>
        <listener-class>org.geomajas.servlet.PrepareScanningContextListener</listener-class>
    </listener>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath*:META-INF/geomajasWebContext.xml</param-value>
            <description>Spring Web-MVC specific (additional) context files.</description>
        </init-param>
        <load-on-startup>3</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/d/*</url-pattern>
        <url-pattern>/${artifactId}/*</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

</web-app>
  1. 別の Spring 管理サーブレットを追加できるようにするには、上記のファイルにどのような変更を加える必要がありますか?
4

1 に答える 1

2

|SpringGwtRemoteServiceServlet web.xml`を介して Spring と GWT を統合する方法は次のとおりです。:
In

<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

<servlet>
<servlet-name>dispatch</servlet-name>
<servlet-class>org.springframework.web.context.support.HttpRequestHandlerServlet</servlet-class>
</servlet>

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



<servlet>
    <servlet-name>springGwtRemoteServiceServlet</servlet-name>
    <servlet-class>org.spring4gwt.server.SpringGwtRemoteServiceServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>springGwtRemoteServiceServlet</servlet-name>
    <url-pattern>/nameOfYourApp/springGwtServices/*</url-pattern>
</servlet-mapping>

それよりも、Spring マネージド サービスを定義する場合は常に、以下を使用springGwtServicesしますRemoteServiceRelativePath

import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import com.google.gwt.user.client.rpc.RemoteService;

@RemoteServiceRelativePath("springGwtServices/userService")
public interface UserService  extends RemoteService{

}

実装例:

import com.google.gwt.user.server.rpc.RemoteServiceServlet;

@Service("userService")
public class UserServiceImpl extends RemoteServiceServlet implements UserService{

}

これがあなたが必要としていたものであることを願っています

于 2013-07-04T14:26:59.517 に答える