将 Jackson 更新到 2.10 会破坏 Jetty 9。如何调试?
Updating Jackson to 2.10 breaks Jetty 9. How to debug?
我有一个用 Java 8 编写的遗留应用程序,它是为 Google App Engine 构建的,它一直在使用 Jackson 2.3。现在我需要更新应用程序以使用 Jackson 2.10。但是,一旦我这样做,该应用程序的网络服务(以前一直在工作)将不会 return 除了 503 页面说“503”和“由 Jetty://9.4.36v20210114 提供支持”之外的任何内容。
日志显示没有错误。他们说的都是
com.google.appengine.tools.development.jetty9.DevAppEngineWebAppContext disableTransportGuarantee
INFO: Ignoring <transport-guarantee> for /my/endpoint/* as the SDK does not support HTTPS. It will still be used when you upload your application.
这是完全正常的预期消息。
我的依赖关系树没有显示对 Jetty 的引用。我不确定那是什么意思; JDK 中是否内置了 Jetty?
有人知道是什么原因造成的吗?或者如何调试?
事实证明问题不在于 Jetty。
其实是有错误信息的,只是一开始没看出来而已。错误是
java.lang.ClassNotFoundException: com.fasterxml.jackson.annotation.JsonInclude$Value
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:209)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.getDeclaredMethods(Class.java:1975)
...
我不完全明白为什么,但是将以下内容添加到我的 POM 中解决了这个问题。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.10.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.10.5</version>
</dependency>
我有一个用 Java 8 编写的遗留应用程序,它是为 Google App Engine 构建的,它一直在使用 Jackson 2.3。现在我需要更新应用程序以使用 Jackson 2.10。但是,一旦我这样做,该应用程序的网络服务(以前一直在工作)将不会 return 除了 503 页面说“503”和“由 Jetty://9.4.36v20210114 提供支持”之外的任何内容。
日志显示没有错误。他们说的都是
com.google.appengine.tools.development.jetty9.DevAppEngineWebAppContext disableTransportGuarantee
INFO: Ignoring <transport-guarantee> for /my/endpoint/* as the SDK does not support HTTPS. It will still be used when you upload your application.
这是完全正常的预期消息。
我的依赖关系树没有显示对 Jetty 的引用。我不确定那是什么意思; JDK 中是否内置了 Jetty?
有人知道是什么原因造成的吗?或者如何调试?
事实证明问题不在于 Jetty。
其实是有错误信息的,只是一开始没看出来而已。错误是
java.lang.ClassNotFoundException: com.fasterxml.jackson.annotation.JsonInclude$Value
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:209)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.getDeclaredMethods(Class.java:1975)
...
我不完全明白为什么,但是将以下内容添加到我的 POM 中解决了这个问题。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.10.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.10.5</version>
</dependency>