部署后显示 Weblogic 12 c 错误 Servlet 错误 BEA-101017 war

Weblogic 12 c error Servlet error BEA-101017 shown after deploying war

我们能够在 Weblogic 10.3.6.0 中成功部署 war 文件,但最近我们尝试在 Weblogic 12c 中部署相同的 war 并且我们开始看到以下 servlet 错误,需要您的建议来解决这个问题。

<Nov 25, 2020 4:23:36,654 PM IST> <backupserv1.bhipfxintranet.com> <new_ManagedServer_1> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <> <1606301616654> <[severity-value: 8] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] > <[ServletContext@418895039[app:BES module:BES.war path:null spec-version:3.1]] Root cause of ServletException. java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder; at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:119) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:298) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:295) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:353) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78) at com.beacon.entitlement.filters.BaseFilter.doFilter(BaseFilter.java:45) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3797) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3763) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:344) at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197) at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203) at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71) at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2451) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2299) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2277) at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1720) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1680) at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:272) at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352) at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337) at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57) at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41) at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:655) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:420) at weblogic.work.ExecuteThread.run(ExecuteThread.java:360)

初步怀疑是JDK兼容性

  1. Weblogic 10.3.6和Weblogic c12c

    使用的JDK版本号是多少
  2. 是否使用weblogic12cJDK版本环境编译war

您可以按照以下步骤将球衣 1.x 更新到您的应用程序中:

https://docs.oracle.com/middleware/1213/wls/RESTF/version-restful-service.htm#RESTF200

最后,您需要在您的应用程序中进行类加载器过滤,例如,在您的 weblogic.xml :

(把所有需要的jar文件打包成)。

<?xml version="1.0" encoding="UTF-8"?>
 
<wls:weblogic-web-app
xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd
http://xmlns.oracle.com/weblogic/weblogic-web-app
http://xmlns.oracle.com/weblogic/weblogic-web-app/1.7/weblogic-web-app.xsd">
 
 ...
 <wls:container-descriptor>
 <wls:prefer-application-packages>
 <!-- jersey-bundle-*.jar -->
 <wls:package-name>com.sun.jersey.*</wls:package-name>
 <wls:package-name>com.sun.research.ws.wadl.*</wls:package-name>
 <wls:package-name>com.sun.ws.rs.ext.*</wls:package-name>
 <!-- Jackson-*.jar -->
 <wls:package-name>org.codehaus.jackson.*</wls:package-name>
 
 <!-- jettison-*.jar -->
 <wls:package-name>org.codehaus.jettison.*</wls:package-name>
 
 <!-- jsr311*.jar -->
 <wls:package-name>javax.ws.rs.*</wls:package-name>
 
 <!-- asm.jar -->
 <wls:package-name>org.objectweb.asm.*</wls:package-name>
 </wls:prefer-application-packages>
 </wls:container-descriptor>
</wls:weblogic-web-app>