从同一个 Web 应用程序提供 Vaadin 和 JSP 服务

发布于 2024-11-06 12:07:27 字数 915 浏览 0 评论 0原文

我无法让我的 Vaadin 应用程序和一些使用 springmvc 的 jsps 在同一个 web 应用程序中工作。最有前途的方法似乎是执行以下操作:

<servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>fluxtream</servlet-name>
    <url-pattern>/main/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>fluxtream</servlet-name>
    <url-pattern>/VAADIN/*</url-pattern>
</servlet-mapping>

即不从 web 应用程序的根目录提供 Vaadin 应用程序,但这给了我以下错误:

java.lang.NullPointerException
org.vaadin.artur.icepush.ICEPushServlet.service(ICEPushServlet.java:52)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

...这可能与我正在使用 IcePush (a我需要依赖)。

无论如何,如果有人可以分享他们与一些 jsp 和 springmvc 一起提供应用程序的经验,我将不胜感激。

I cannot get both my Vaadin app and some jsps using springmvc to work in the same webapp. The most promising approach seems to be doing the following:

<servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>fluxtream</servlet-name>
    <url-pattern>/main/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>fluxtream</servlet-name>
    <url-pattern>/VAADIN/*</url-pattern>
</servlet-mapping>

i.e. not serving the Vaadin app from the root of the webapp, but that gives me the following error:

java.lang.NullPointerException
org.vaadin.artur.icepush.ICEPushServlet.service(ICEPushServlet.java:52)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

... which might be related to the fact that I'm using IcePush (a required dependency for me).

Anyhow, I would be grateful if someone could share their experience with serving an app alongside some jsps and springmvc.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

水晶透心 2024-11-13 12:07:27

我会推荐 Vaadin 论坛的主题。结合所讨论的解决方案,您将得到:

<servlet>
        <servlet-name>VaadinApplicationRunner</servlet-name>
        <servlet-class>com.vaadin.terminal.gwt.server.ApplicationRunnerServlet</servlet-class>
</servlet>



<servlet-mapping>
        <servlet-name>VaadinApplicationRunner</servlet-name>
        <url-pattern>/VAADIN/*</url-pattern>
</servlet-mapping>



    <servlet-mapping>
      <servlet-name>Microblog</servlet-name>
      <url-pattern>/MicroblogApplicationServlet/*</url-pattern>
  </servlet-mapping>

这是icepush Microblog portlet 的一个示例。其他 Vaadin portlet 或icepush portlet 可以使用自己的 url 模式。请参阅 Spring 集成教程,了解它是如何与此链接的。

I would recommend this thread from Vaadin forums. Combine the discussed solution so that you have:

<servlet>
        <servlet-name>VaadinApplicationRunner</servlet-name>
        <servlet-class>com.vaadin.terminal.gwt.server.ApplicationRunnerServlet</servlet-class>
</servlet>



<servlet-mapping>
        <servlet-name>VaadinApplicationRunner</servlet-name>
        <url-pattern>/VAADIN/*</url-pattern>
</servlet-mapping>



    <servlet-mapping>
      <servlet-name>Microblog</servlet-name>
      <url-pattern>/MicroblogApplicationServlet/*</url-pattern>
  </servlet-mapping>

This is an example for icepush Microblog portlet. Other Vaadin portlets or icepush portlets can be with their own url patterns. Consult the tutorial for Spring integration, how it links with this.

孤寂小茶 2024-11-13 12:07:27

根据异常,servlet 的初始化已经失败。

ICEPush 插件的配置方式可能存在一些问题。在您的配置中根本没有提及 servlet。 Vaadin 应用程序需要配置 servlet 类,ICEPush 附加组件使用它的 servlet 类。查看 http://vaadin.com/directory#addon/icepush 的说明

,然后您必须确保您的 URL 模式不会相互重叠。我认为 *.do 和 /main/ 可能正是这样做的。

Based on the exception already the initialization of the servlet fails.

There might be some problem how the ICEPush add-on is configured. In your configuration there is no mention about the servlet at all. Vaadin application requires a servlet class to be configured and the ICEPush add-on uses it's servlet class. Take a look at the instructions at http://vaadin.com/directory#addon/icepush

Then you have to make sure that your URL patterns don't overlap with each other. I think that *.do and /main/ might do exactly that.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文