I'm trying to deploy a simple Spring Boot application on Weblogic 12c (12.1.3), in a developer environment it does work perfectly. However when need to repackage it in a war and to attach it to an earand this does not seem to deploy correctly.
This is the stacktrace:
<Nov 23, 2016 6:15:13 PM CET> <Error> <Munger> <BEA-2156200> <Unable to load descriptor weblogic.utils.classloaders.GenericClassLoader@6964c078 finder: weblogic.utils.classloaders.CodeGenClassFinder@5715556 annotation: my-app-ear@/WEB-INF/lib/tomcat-embed-websocket-8.5.6.jar!/META-INF/web-fragment.xml of module /my-app. The error is weblogic.descriptor.DescriptorException: Unmarshaller failed
Any input will be very welcome. Thanks in advance.
From Spring Boot docs ,
To deploy a Spring Boot application to WebLogic you must ensure that your servlet initializer directly implements WebApplicationInitializer ( even if you extend from a base class that already implements it ).
For Example,
Change this,
public class Application extends SpringBootServletInitializer {
to
public class Application extends SpringBootServletInitializer implements WebApplicationInitializer {
NOTE: SpringBootServletInitializer already implements WebApplicationInitializer, but you need to do it again.
As of now,I don't know Why.
public abstract class SpringBootServletInitializer implements WebApplicationInitializer {
From Spring source code,
You need to do 2 things:
On your weblogic 12.1.3 instance, upgrade your JPA api and add the hibernate 5 implementation
In you web app, make sure what dependencies you have and that they do not overlap with the ones already provisioned under Weblogic classloader.
I have details the steps here:
http://javagoogleappspot.blogspot.be/2018/05/make-your-spring-boot-20-compatible.html
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.