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 吗?
我尝试将 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 吗?