2017-09-10 90 views
0
import io.vertx.core.AbstractVerticle; 
import io.vertx.core.Vertx; 
import io.vertx.ext.web.Router; 
public class app extends AbstractVerticle{ 
    @Override 
    public void start() throws Exception{ 
     Router router = Router.router(vertx); 
     router.route().handler(routingContext -> { 
      routingContext.response() 
      .putHeader("content-type", "text/html") 
      .end("hello vert.x"); 
     }); 
     vertx.createHttpServer().requestHandler(router::accept).listen(8888); 
    } 
    public static void main(String[] args) { 
     Vertx vertx = Vertx.vertx(); 
     vertx.deployVerticle(new app()); 
    } 
} 

然后发生错误为java.lang.NoSuchMethodError:io.netty.resolver.HostsFileParser.parseSilently()Ljava/util/Map;关于错误的问题“线程中的异常”main“java.lang.NoSuchMethodError:io.netty.resolver.HostsFileParser.parseSilently()Ljava/util/Map;”

+0

我会检查类路径,因为看起来你的Netty版本不兼容。 – tsegismont

回答

0

尝试这种方式

import io.vertx.core.AbstractVerticle; 
import io.vertx.ext.web.Router; 

public class Server extends AbstractVerticle { 

    @Override 
    public void start() throws Exception { 

    Router router = Router.router(vertx); 

    router.route().handler(routingContext -> { 
     routingContext.response().putHeader("content-type", "text/html").end("hello vert.x"); 
    }); 

    vertx.createHttpServer().requestHandler(router::accept).listen(8080); 
    } 
} 

运行mvn clean package然后java -jar /path/to/jar

而且在Java中app是不是一个有效的类名。 类名以大写字母开头,例如App

+0

谢谢你的回答。其实我只是这方面的大一新生。我使用IntelliJ IDEA软件,因此我不确定如何根据您的建议运行mvn clean package和java -jar/path/to/jar。只有更改名称实际上不起作用。另外,如果我导入io.vertx.example.util.Runner,我应该部署哪个jar? – SunnieX

+0

@SunnieX sry为亚军。删除了。它不需要。如果您使用maven作为您的构建工具,请在终端中运行'mvn clean package'。然后转到/ target目录并用'java -jar whatever-jar'运行jar来部署你的verticle。如果你是新生,我​​建议在YouTube上查找。这方面有很多资源 – Beckham

相关问题