【问题标题】:eclipse not generate annotation process class but m2e-apt works fineeclipse 不生成注释过程类,但 m2e-apt 工作正常
【发布时间】:2019-03-27 15:16:48
【问题描述】:

undertow 中有一个名为HttpRequestParser 的类,它使用注释过程,应该生成HttpRequestParser$$generated

首先,m2e-apt 可以正常工作,因为它可以正确生成 generated-sources

我尝试运行示例

        Undertow server = Undertow.builder()
                .addHttpListener(8080, "localhost")
                .setHandler(new HttpHandler() {
                    @Override
                    public void handleRequest(final HttpServerExchange exchange) throws Exception {
                        exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain");
                        exchange.getResponseSender().send("Hello World");
                    }
                }).build();
        server.start();  

但是有错误

Mar 27, 2019 10:50:55 PM org.xnio.Xnio <clinit>
INFO: XNIO version 3.3.8.Final
Mar 27, 2019 10:50:55 PM org.xnio.nio.NioXnio <clinit>
INFO: XNIO NIO Implementation Version 3.3.8.Final
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: io.undertow.server.protocol.http.HttpRequestParser$$generated
    at io.undertow.Undertow.start(Undertow.java:247)
    at io.github.fairjm.undertow.examples.HelloWorldServer.main(HelloWorldServer.java:20)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: io.undertow.server.protocol.http.HttpRequestParser$$generated
    at io.undertow.server.protocol.http.HttpRequestParser.instance(HttpRequestParser.java:221)
    at io.undertow.server.protocol.http.HttpOpenListener.<init>(HttpOpenListener.java:93)
    at io.undertow.Undertow.start(Undertow.java:179)
    ... 1 more
Caused by: java.lang.ClassNotFoundException: io.undertow.server.protocol.http.HttpRequestParser$$generated
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at io.undertow.server.protocol.http.HttpRequestParser.instance(HttpRequestParser.java:216)
    ... 3 more

UndertowLogger_$logger 已由 m2e-apt 生成,因此日志正常。

我尝试运行mvn clean compile,然后在target\classes 中生成HttpRequestParser$$generated(并且它没有生成源)。

我需要做什么才能让 eclipse 生成它们?

【问题讨论】:

    标签: java eclipse undertow


    【解决方案1】:

    嗯嗯……
    我觉得好尴尬。。 在打字的过程中,我问自己是否将处理器 jar 添加到工厂路径,然后我检查它发现没有...
    undertow-parser-generator 放入undertow-core ast 工厂路径后。
    它终于奏效了。

    【讨论】:

      猜你喜欢
      • 2021-08-01
      • 2016-05-05
      • 1970-01-01
      • 2014-02-09
      • 2011-11-13
      • 2023-03-19
      • 1970-01-01
      • 2013-08-01
      • 1970-01-01
      相关资源
      最近更新 更多