当前位置: 首页 > 知识库问答 >
问题:

当在WebLogic中部署战争时,org.glassfish.jersey.servlet.init.JerseyServletCon的初始化程序

乌和畅
2023-03-14

当我将Spring Boot项目包部署为war WebLogic抛出时:

Caused By: java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.init.JerseyServletContainerInitializer
        at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:1025)
        at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:986)
        at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:83)
        at weblogic.utils.classloaders.GenericClassLoader.doFindClass(GenericClassLoader.java:607)
        at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:539)
        at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:492)
        at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:469)
        at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:53)
        at weblogic.servlet.internal.WebAppServletContext.initContainerInitializer(WebAppServletContext.java:1390)
        at weblogic.servlet.internal.WebAppServletContext.initContainerInitializers(WebAppServletContext.java:1360)
        at weblogic.servlet.internal.WebAppServletContext.initContainerInitializers(WebAppServletContext.java:1341)
        at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1907)
        at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3091)
        at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1849)
        at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:882)
        at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360)
        at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
        at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:138)
        at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)
        at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:233)
        at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:228)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
        at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:78)
        at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:52)
        at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:754)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
        at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:264)
        at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:52)
        at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165)
        at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:90)
        at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:627)
        at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:171)
        at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:121)
        at weblogic.deploy.internal.targetserver.operations.StartOperation.doCommit(StartOperation.java:151)
        at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:347)
        at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:901)
        at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1456)
        at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:456)
        at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:181)
        at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:217)
        at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:14)
        at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:69)
        at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:666)
        at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348)
        at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333)
        at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54)
        at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
        at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:640)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:406)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:346)

WebLogic服务器版本:12.2.1.1.0

我的 Spring 引导源:

OneAppAPI.java

@SpringBootApplication
public class OneAppAPI extends SpringBootServletInitializer implements WebApplicationInitializer{

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(OneAppAPI.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(OneAppAPI.class, args);
    }

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://xmlns.oracle.com/weblogic/weblogic-web-app         http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">

    <wls:context-root>oneapp</wls:context-root>
    <wls:container-descriptor>
        <wls:prefer-application-packages>
            <wls:package-name>org.slf4j.*</wls:package-name>
        </wls:prefer-application-packages>
    </wls:container-descriptor>

</wls:weblogic-web-app>

dispatcherServlet-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd">

</beans>

我的spring boot starter tomcat依赖范围已提供,xml文件放在src/main/webapp/WEB-INF中/

我已经安装在其他WebLogic,但与不同的版本(12.2.1.3.0),它的工作。

怎么了?

共有1个答案

章锦
2023-03-14

我终于得到了解决方案,正如M.Deinum所说,问题是WebLogic包,但在我的情况下,我还必须添加

   <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:package-name>com.google.common.*</wls:package-name>
    </wls:prefer-application-packages>*
 类似资料:
  • 我想使用Spring初始值设定项为tomcat创建WAR… 我们的DevOp仍然不习惯将java作为独立运行的想法,并且希望在tomcat中将应用程序作为WAR 我能够产生一个项目,但它似乎产生了一个独立的Spring启动应用程序 我仍然想使用Spring Launalizr来生成所有依赖项,例如: Rest存储库 JDBC模板 石英 Rest 一种解决方案是在eclipse中创建一个动态web项

  • 解释我症状的最接近stackoverflow的问题是:如何在Tomcat7中部署Grails 3.0.1 war文件? 我正在将Grails 2.3.4应用程序升级到Grails 3.1.10,一切都在使用“Grails run app”。 当我部署到一场战争中时,任何url都只能得到404。 战争在卡塔利纳部署时没有任何错误信息。出来 tomcat访问日志显示了我的访问尝试。(不是linux问题

  • 我阅读了一些教程,了解到负责管理spring应用程序中创建的所有bean。在将WAR部署到servlet容器时,必须扩展,从文档中可以看出,一个固执己见的WebApplicationInitializer可以从传统的WAR部署中运行SpringApplication。将Servlet、Filter和ServletContextInitializer bean从应用程序上下文绑定到服务器。 有人能帮

  • 我正在寻找一种方法,可以在我选择的时候将战争工件部署到IntelliJ启动的Tomcat中。我有一个项目,它的配置启动了Tomcat8服务器并部署了一些工件。LaterI现在希望将更多来自不同项目的工件部署到同一个IntelliJ启动的Tomcat中。 步骤:启动包含Tomcat的项目 步骤:从另一个IntelliJ-project(从IDE内)部署war 步骤:从IntelliJ部署另一个war

  • 我正在使用Spring Boot(2.0.5.RELEASE)构建一个war文件以部署到weblogic 12c中。我遵循以下教程来做到这一点: https://o7 planning . org/en/11901/deploying-spring-boot-application-on-Oracle-WebLogic-server 但无法在 weblogic 中部署(通过 weblogic 控制

  • 我对tomcat很熟悉。我们使用服务器在eclipse中创建一个项目。xml和一些。配置文件。我们生成。战争档案。我们将这个war文件复制到我们的生产服务器webapps文件夹中,然后在webapps文件夹中生成一个同名的新文件夹。我们在那里更改生产服务器配置(在文件夹中)。 我们的一个客户想在他的JBoss服务器上部署war。我们试图通过将war复制到/standalone/deployment