Google wildfly 上的 oauth 客户端异常

Google oauth client exception on wildfly

我尝试将 google 日历 API 与我的项目集成。在本地环境中测试,似乎工作正常。但是当我在 wildfly 上部署我的 .ear 文件时,它给了我以下错误:

堆栈跟踪:

 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1) 2021-02-08
 11:26:06.187 ERROR o.s.a.i.SimpleAsyncUncaughtExceptionHandler -
 Unexpected exception occurred invoking async method: public void
 com.xyz.soa.serviceImpl.email.CalendarServiceImpl.createGoogleCalendarEvent(com.xyz.soa.model.EmailInfo)
 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1)
 java.lang.NoClassDefFoundError: com/sun/net/httpserver/HttpHandler
 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1)  at
 com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver$Builder.build(LocalServerReceiver.java:248)
 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1)  at
 com.xyz.soa.serviceImpl.email.CalendarServiceImpl.getCredentials(CalendarServiceImpl.java:82)
 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1)  at
 com.xyz.soa.serviceImpl.email.CalendarServiceImpl.getCalendar(CalendarServiceImpl.java:89)
 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1)  at
 com.xyz.soa.serviceImpl.email.CalendarServiceImpl.createGoogleCalendarEvent(CalendarServiceImpl.java:103)
 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1)  at
 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2021-02-08
 11:26:06,187 INFO  [stdout] ("async-thread-"1)     at
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1)  at
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1)  at
 java.lang.reflect.Method.invoke(Method.java:498) 2021-02-08
 11:26:06,187 INFO  [stdout] ("async-thread-"1)     at
 org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1)  at
 org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1)  at
 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1)  at
 org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke[=11=](AsyncExecutionInterceptor.java:115)
 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1)  at
 java.util.concurrent.FutureTask.run(FutureTask.java:266) 2021-02-08
 11:26:06,187 INFO  [stdout] ("async-thread-"1)     at
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1)  at
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1)  at
 java.lang.Thread.run(Thread.java:745) 2021-02-08 11:26:06,187 INFO 
 [stdout] ("async-thread-"1) Caused by:
 java.lang.ClassNotFoundException: com.sun.net.httpserver.HttpHandler
 from [Module "deployment.project-api.war" from Service Module Loader]
 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1)  at
 org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:255)
 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1)  at
 org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1)  at
 org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
 2021-02-08 11:26:06,187 INFO  [stdout] ("async-thread-"1)  at
 org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
 2021-02-08 11:26:06,188 INFO  [stdout] ("async-thread-"1)  ... 16
 common frames omitted

Google 我添加的日历库:

 compile group: 'com.google.api-client', name: 'google-api-client', version: '1.31.0'
compile group: 'com.google.oauth-client', name: 'google-oauth-client-jetty', version: '1.31.0'
 compile group: 'com.google.apis', name: 'google-api-services-calendar', version: 'v3-rev411-1.25.0'

从错误中我了解到,LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build(); 这条线引起了来自 google-oauth-client 的问题(请注意,它适用于本地环境。)。所以我检查了我的 .ear 包,发现这些库显示在图像中。 请注意,我找到了两个用于 oauth 客户端的 jar 文件
请建议我如何摆脱它?

com.sun.net.httpserver.HTTPHandler 您将获得 NoClassDefFoundError。您确定在打包的库集中有 this 吗?