首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vaadin 7/8与嵌入式Jetty

Vaadin 7/8与嵌入式Jetty
EN

Stack Overflow用户
提问于 2014-08-14 10:14:23
回答 1查看 3.2K关注 0票数 1

我想使用嵌入式jetty (eclipse露娜内置版本)部署一个vaadin (Version7.2.5) web应用程序。

目前,我的代码看起来是:

代码语言:javascript
复制
public class Launcher {
    private static int httpPort = 8080;

    public static void main(String[] args) throws Exception
    {
        Server server = new Server();
        SocketConnector connector = new SocketConnector();
        connector.setMaxIdleTime(1000 * 60 * 10);
        connector.setSoLingerTime(-1);
        connector.setPort(httpPort);
        connector.setReuseAddress(false);
        QueuedThreadPool pool = new QueuedThreadPool();
        pool.setMinThreads(10);
        pool.setMaxThreads(100);
        server.setConnectors(new Connector[] { connector });
        server.setThreadPool(pool);
        WebAppContext context = new WebAppContext();
        context.setServer(server);
        context.setContextPath("/");
        context.setWar("ReportWriter.war");
        context.setClassLoader(Thread.currentThread().getContextClassLoader());
        server.setHandler(context);
        try
        {
            server.start();
        } catch (Exception e) {
               e.printStackTrace();
        }
    }
}

我从vaadin论坛帖子上复制了它。服务器似乎启动了,战争实际上被提取出来了。

将我的浏览器指向http://localhost:8080/,而不是启动我的vaadin (Version7.2.5)应用程序,我看到的是:

以防万一可能很重要:eclipse中WAR项目的我的目录树:

代码语言:javascript
复制
ReportWriter
|   .classpath
|   .project
|   ivy.xml
|   ivysettings.xml
|   
+---.settings
|       (...)
|       
+---build
|   \---classes
|       +---(...)
|       \---META-INF
|               persistence.xml
|               
+---src
|   +---(...)
|   \---META-INF
|           persistence.xml
|           
\---WebContent
    |   dropDDL.sql
    |   init.sql
    |   reportwriter.xml
    |   
    +---META-INF
    |       MANIFEST.MF
    |       
    +---VAADIN
    \---WEB-INF
        \---lib
                BorderLayout-0.5.jar
                confirmdialog-2.0.4.jar
                dawn-2.jar
                derby.jar
                derbynet.jar
                derbyrun.jar
                derbytools.jar
                messagebox-2.0.6.jar
                refresher-1.2.1.7.jar
                vaadin-jpacontainer-3.1.1-javadoc.jar
                vaadin-jpacontainer-3.1.1-sources.jar
                vaadin-jpacontainer-3.1.1.jar
                wizards-for-vaadin-1.0.1.jar

还有我的RWRunner (发射器)项目:

代码语言:javascript
复制
RWRunner
|   .classpath
|   .project
|   ivy.xml
|   ivysettings.xml
|   ReportWriter.war  <-- The war file generated from the project above
|   test.txt
|   web.xml
|   
+---.settings
|       .jsdtscope
|       com.vaadin.integration.eclipse.prefs
|       org.eclipse.jdt.core.prefs
|       org.eclipse.wst.common.component
|       org.eclipse.wst.common.project.facet.core.xml
|       org.eclipse.wst.jsdt.ui.superType.container
|       org.eclipse.wst.jsdt.ui.superType.name
|       
+---build
|   \---classes
|       \---ch
|           \---darkspot
|               \---rwrunner
|                       Launcher.class
|                       
\---src
    \---ch
        \---darkspot
            \---rwrunner
                    Launcher.java
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-15 20:42:53

看起来,您在某种程度上缺少了将/*映射到Vaadin应用程序所需的servlet配置。似乎已经有了web.xml来处理这个问题,但是请检查内容是否引用了正确的Servlet/UI类和URI。

或者,要在web.xml中映射,您可以在UI类中有一个@WebServlet注释servlet (当使用JSR 315时):

代码语言:javascript
复制
@WebServlet(value = "/*", asyncSupported = true)
@VaadinServletConfiguration(productionMode = false, ui = MyDemoUI.class)
public static class Servlet extends VaadinServlet {
}

此外,上面的WAR结构看起来很可疑(尽管浏览器屏幕截图中的目录列表看起来不错)。确保类在/WEB-INF/classes/下,以便对servlet容器可见。还有/WEB下的web.xml。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25305552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档