Java 由于缺少Spring引导类,WebLogic 12.2.1.2.0上的部署失败
我有一个在STS3.9.2中开发的Spring boot应用程序,最初作为一个独立的.jar,后来使用WebLogic Web Service Maven项目模板将其迁移到WebLogic。目标运行时是Oracle WebLogic 12.2.1.3(这是Oracle仍然提供的最旧版本)。我没有使用与WebLogic的任何集成,我只希望能够部署 正如许多在线教程所描述的,我已经将spring boot starter tomcat依赖项设置为提供的Java 由于缺少Spring引导类,WebLogic 12.2.1.2.0上的部署失败,java,oracle,spring-boot,maven,weblogic12c,Java,Oracle,Spring Boot,Maven,Weblogic12c,我有一个在STS3.9.2中开发的Spring boot应用程序,最初作为一个独立的.jar,后来使用WebLogic Web Service Maven项目模板将其迁移到WebLogic。目标运行时是Oracle WebLogic 12.2.1.3(这是Oracle仍然提供的最旧版本)。我没有使用与WebLogic的任何集成,我只希望能够部署 正如许多在线教程所描述的,我已经将spring boot starter tomcat依赖项设置为提供的。以下是我的依赖项列表: <par
。以下是我的依赖项列表:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
...
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.ws</groupId>
<artifactId>spring-ws-security</artifactId>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.1</version>
<exclusions>
<exclusion>
<artifactId>xmlparserv2</artifactId>
<groupId>com.oracle.jdbc</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>xdb6</artifactId>
<version>12.1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
org.springframework.boot
是库spring-boot-2.2.2.RELEASE.jar的一部分,该库与WAR文件打包在一起。该错误可能是由于存在该库的较旧版本(该类是在版本2.1.0中引入的),但在WebLogic服务器上似乎没有任何spring引导jar可供选择
如上所述,通过使用以下weblogic-configuration.xml将应用程序部署为EAR文件,可以指示服务器使用打包的jar:
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-application xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-application" 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/javaee_6.xsd http://xmlns.oracle.com/weblogic/weblogic-application http://xmlns.oracle.com/weblogic/weblogic-application/1.8/weblogic-application.xsd">
<!--weblogic-version:12.2.1.3-->
<wls:application-param>
<wls:param-name>webapp.encoding.default</wls:param-name>
<wls:param-value>UTF-8</wls:param-value>
</wls:application-param>
<wls:prefer-application-packages>
<wls:package-name>org.springframework.boot.*</wls:package-name>
</wls:prefer-application-packages>
</wls:weblogic-application>
webapp.encoding.default
UTF-8
org.springframework.boot*
但无济于事(同样的错误依然存在)。欢迎解释原因或提出建议 对于那些感兴趣的人,我解决了以下问题。无需创建EAR文件,只需将包列表添加到weblogic.xml文件,如下所示:
<?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/web-app_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.9/weblogic-web-app.xsd">
<wls:weblogic-version>12.2.1.3</wls:weblogic-version>
<wls:context-root>ChpDataImport</wls:context-root>
<wls:container-descriptor>
<wls:prefer-application-packages>
<wls:package-name>org.slf4j.*</wls:package-name>
<wls:package-name>org.springframework.*</wls:package-name>
<wls:package-name>com.fasterxml.jackson.*</wls:package-name>
</wls:prefer-application-packages>
</wls:container-descriptor>
</wls:weblogic-web-app>
12.2.1.3
ChpDataImport
org.slf4j*
org.springframework*
com.fasterxml.jackson*
策略是部署,在出现错误时查看日志,并将适当的包添加到列表中,直到不再出现错误
<?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/web-app_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.9/weblogic-web-app.xsd">
<wls:weblogic-version>12.2.1.3</wls:weblogic-version>
<wls:context-root>ChpDataImport</wls:context-root>
<wls:container-descriptor>
<wls:prefer-application-packages>
<wls:package-name>org.slf4j.*</wls:package-name>
<wls:package-name>org.springframework.*</wls:package-name>
<wls:package-name>com.fasterxml.jackson.*</wls:package-name>
</wls:prefer-application-packages>
</wls:container-descriptor>
</wls:weblogic-web-app>