2013-07-04 3 views
0

1.В поисках в Интернете я понимаю, что для использования пружины с gwt мне придется заменить стандартный DispatcherServlet на org.spring4gwt.server.SpringGwtRemoteServiceServlet. Но все геомаджи (которые используют весну + gwt) примеры, которые я видел, используют фактически заменяемый DispatcherServlet. Как я могу это сделать? ,Весна + множественные сервлеты gwt

<!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. Какие изменения я должен сделать, чтобы вышеуказанный файл, так что я могу добавить еще один пружинный удалось сервлет?
+0

может кто-то сделать 1. внизу дном 2.? Я пробовал редактирование без успеха. В поле редактирования номер отображается как 2. еще после подтверждения изменений 1. остается – osh

ответ

2

Вот как я интегрирован с Spring GWT через | SpringGwtRemoteServiceServlet :
In
web.xml`:

<!-- 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{ 

} 

Надеюсь, это то, что вам нужно

+0

Спасибо за ваши усилия. Это интересно, но я специально хочу это сделать, используя только сервлет диспетчера по умолчанию. Я видел, что это возможно, но я просто не могу сказать, как – osh

+0

Действительно, мы используем диспетчер по умолчанию и просто добавляем 'SpringGwtRemoteServiceServlet' для« перевода »вызовов RPC:« Он позволяет прозрачный, автоматический доступ к Spring beans как сервисы верхнего уровня из кода клиента GWT без дополнительных сервлетов или оболочечных оберток RPC, которые часто необходимы для эффективной интеграции Spring/GWT »(из описания проекта) –

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