0
votes

We are able to successfully deploy the war file in Weblogic 10.3.6.0, but recently we have tried to deploy the same war in Weblogic 12c and we started seeing the below servlet error, need your suggestion to solve this issue.

<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)

2
it seems to be the app is loading different jersey libraries - devwebcl
Is it possible to use only Jersy 1.x libraries in 12 c? - user2089477

2 Answers

1
votes

You can update the jersey 1.x into your application by following the next steps:

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

In the end, you need to do a Classloader Filtering in your app, for instance, in your weblogic.xml :

(An packaging all the necessary jar files into).

<?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>
0
votes

The initial suspicion is JDK compatibility

  1. What is the JDK version number used by Weblogic 10.3.6 and Weblogic c12c

  2. Do you want to use weblogic12c JDK version environment to compile war