0

有什么方便的方法可以结合 Spring MVC 框架使用 RESTEasy 异步 HTTP 支持(在我的例子中是 Tomcat 6)。我找到了关于在 Spring 中使用 RESTEasy 的有用文章,但没有一篇文章涵盖异步支持,目前这似乎有点棘手,因为根据容器需要不同的 Servlet 类(例如,Tomcat 的 Tomcat6CometDispatcherServlet) .

谢谢,脸书

4

2 回答 2

0

我已经使用 Comet、Bayeux、Java、Maven 和 Raphael JS 前端创建了一个示例应用程序,并写了一篇关于它的博客文章,您可以将它用作您的应用程序的基础,只需将当前服务代码包装在 REST 中。

http://geeks.aretotally.in/thinking-in-reverse-not-taking-orders-from-yo

希望它会帮助你。

于 2011-02-22T16:31:02.163 回答
0

对于任何感兴趣的人,我最终不得不使用 Tomcat6CometDispatcherServlet 而不是 Spring DispatcherServlet 来使我的应用程序正常工作。

我仍然有 Spring ContextLoaderListener 来在我的应用程序上下文中创建各种 bean,但是必须使用不太理想的方法从我的 Controller 类中访问这些,这些类现在是 JAX-RS 注释而不是 Spring MVC 注释。(Google 会快速发现各种关于以编程方式访问 Spring 上下文的文章。)

这是我的 web.xml 的清理版本(没有什么惊天动地的,但也许它会对某人有一些有用的提示!):

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>myapp</display-name>
<description>My App</description>

    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>classpath:log4j.properties</param-value>
    </context-param>

    <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>myapp.root</param-value>
    </context-param>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

    <context-param>
        <param-name>resteasy.scan</param-name>
        <param-value>true</param-value>
    </context-param>

    <filter>
       <filter-name>TrustedIPFilter</filter-name>
       <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>TrustedIPFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <filter>
        <filter-name>UrlRewriteFilter</filter-name>
        <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
    </filter>    
    <filter-mapping>
        <filter-name>UrlRewriteFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>    

    <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>

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

    <servlet>
       <servlet-name>PollServlet</servlet-name>
       <servlet-class>org.jboss.resteasy.plugins.server.servlet.Tomcat6CometDispatcherServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>PollServlet</servlet-name>
        <url-pattern>/poll/*</url-pattern>
    </servlet-mapping>

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

    <error-page>
        <exception-type>java.lang.Exception</exception-type>
        <location>/WEB-INF/jsp/uncaughtException.jsp</location>
    </error-page>

</web-app>
于 2011-07-01T09:46:10.113 回答