1

当我从服务器隧道 i2p ( https://geti2p.net )访问时访问我的应用程序时出错。当我在没有隧道的情况下访问时非常好。

提供静态文件没有任何问题。该问题仅出现在动态内容中。

我正在使用 spark 框架

在浏览器中:

HTTP ERROR: 500

Problem accessing /. Reason:

java.lang.NullPointerException
Powered by Jetty://

在日志中:

[qtp721779748-28] WARN org.eclipse.jetty.server.HttpChannel - /acerca
java.lang.NullPointerException
at spark.utils.GzipUtils$StringMatch.test(GzipUtils.java:79)
at spark.utils.GzipUtils$StringMatch.test(GzipUtils.java:76)
at java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1351)
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:529)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:516)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:449)
at spark.utils.GzipUtils.checkAndWrap(GzipUtils.java:63)
at spark.webserver.MatcherFilter.doFilter(MatcherFilter.java:248)
at spark.webserver.JettyHandler.doHandle(JettyHandler.java:60)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:179)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:136)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:451)
at org.eclipse.jetty.server.HttpChannel.run(HttpChannel.java:252)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:266)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.run(AbstractConnection.java:240)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:596)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:527)
at java.lang.Thread.run(Thread.java:745)

在代码中:

get("/", (req, res) -> {        
            logger.info(req.ip() + " - " + req.headers("X-I2P-DestB32") + " - GET / - " + req.userAgent());
            res.status(200);
            res.type("text/html");
            ObjectMapper mapper = new ObjectMapper();
            Canales canales = mapper.readValue(new File("/tmp/canales.json"), Canales.class);
            Canal[] cnls = canales.lista.toArray(new Canal[canales.lista.size()]);
            Arrays.sort(cnls);            
            logger.info("Preparando para mostrar " + cnls.length + " canales " );
            Map<String, Object> attributes = new HashMap<>();
            attributes.put("posts", "");
            attributes.put("canales",cnls);
            return freeMarkerEngine.render(new ModelAndView(attributes, "index.ftl.html"));
        });

有什么建议么?

4

0 回答 0