Charts web.xml中的Invent chart add-on vaadin指示

Charts web.xml中的Invent chart add-on vaadin指示,charts,vaadin,Charts,Vaadin,我从其他帖子中了解到,mainServlet文件必须根据演示代码进行修改。N然后必须在web.xml中指示servlet文件 然而,在我的web.xml中,我已经指示了一个servlet类来使用Rest服务 问题:我如何解决这个问题 以下是我正在做的事情: 1: ServletAdapter com.sun.jersey.spi.container.servlet.ServletContainer 1. ServletAdapter /服务/* 问题是不会加载Invent Widgetset

我从其他帖子中了解到,mainServlet文件必须根据演示代码进行修改。N然后必须在web.xml中指示servlet文件 然而,在我的web.xml中,我已经指示了一个servlet类来使用Rest服务

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

以下是我正在做的事情:

1:

ServletAdapter
com.sun.jersey.spi.container.servlet.ServletContainer
1.
ServletAdapter
/服务/*
问题是不会加载Invent Widgetset

2:如果我必须在这里指出Servlet文件,那么我应该如何让我的Rest服务工作?我的Rest服务用于使用auth Constraint进行安全登录。

瓦丁应用
suritate.vaadin.MyApplicationServlet
应用
suritate.vaadin.MyApplication
widgetset
com.example.myapp.widgetset.MyAppWidgetSet

我希望有人能帮我解决这个问题。非常感谢。

您可以覆盖
ApplicationServlet
类中的
writeAjaxPageHtmlVaadinScripts
方法,并插入所需的invient chart 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);
    }

}
公共类TogetherApplicationServlet扩展ApplicationServlet{
@凌驾
受保护的void writeAjaxPageHtmlVaadinScripts(窗口,
字符串名称、应用程序、缓冲写入程序页、,
字符串appUrl、字符串themeUri、字符串appId、,
HttpServletRequest请求)引发ServletException,IOException{
第页。写(“\n”);
第页。写(“\n”);
第页。写(“\n”);
super.writeAjaxPageHtmlVaadinScripts(窗口、主题名、应用程序、,
页面、appUrl、themeUri、appId、请求);
}
}
您必须像我上面所做的那样修改您的
suricate.vaadin.MyApplicationServlet
。确保包含到Invent chart js和css文件的正确路径

<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>
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);
    }

}