0

我从其他帖子中了解到,必须根据 Demo 代码修改 mainServlet 文件。N 然后必须在 web.xml 中指定 servlet 文件 但是,在我的 web.xml 中,为了使用我的 Rest 服务,我已经指定了一个 servlet 类。

问题:我该如何解决这个问题?

以下是我正在做的事情:

1:

<servlet>
        <servlet-name>ServletAdapter</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    
    <servlet-mapping>
        <servlet-name>ServletAdapter</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>

问题是 Invient Widgetset 不会被加载。

2:如果我必须在此处指定 servletfile,那么我应该如何让我的 Rest Service 工作?My Rest 服务用于使用 auth-constrain 进行安全登录。

<servlet>
    <servlet-name>VaadinApplication</servlet-name>
    <servlet-class>suricate.vaadin.MyApplicationServlet</servlet-class>
    <init-param>
        <param-name>application</param-name>
        <param-value>suricate.vaadin.MyApplication</param-value>
    </init-param>
    <init-param>
        <param-name>widgetset</param-name>
        <param-value>com.example.myapp.widgetset.MyAppWidgetSet</param-value>
    </init-param>
</servlet>

我希望有人可以帮助我解决这个问题。首先十分感谢。

4

1 回答 1

0

您可以覆盖类writeAjaxPageHtmlVaadinScripts中的方法ApplicationServlet并注入所需的 invient 图表 js 和 css 文件。

这是我所做的。

public class TogetherApplicationServlet extends ApplicationServlet {

    @Override
    protected void writeAjaxPageHtmlVaadinScripts(Window window,
            String themeName, Application application, BufferedWriter page,
            String appUrl, String themeUri, String appId,
            HttpServletRequest request) throws ServletException, IOException {

        page.write("<script type=\"text/javascript\" language=\"javascript\" src=\""
                + appUrl
                + "/modules/core/jquery/jquery-1.4.4.min.js\"></script>\n");
        page.write("<script type=\"text/javascript\" language=\"javascript\" src=\""
                + appUrl + "/modules/core/js/highcharts.js\"></script>\n");
        page.write("<script type=\"text/javascript\" language=\"javascript\" src=\""
                + appUrl
                + "/modules/core/js/modules/exporting.js\"></script>\n");

        super.writeAjaxPageHtmlVaadinScripts(window, themeName, application,
                page, appUrl, themeUri, appId, request);
    }

}

你将不得不suricate.vaadin.MyApplicationServlet像我上面所做的那样修改你的。确保包含 invient 图表 js 和 css 文件的正确路径。

于 2013-01-09T19:17:01.557 回答