Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 部署到Weblogic 11g的Spring Boot应用程序赢得';开始_Java_Spring_Weblogic_Spring Boot - Fatal编程技术网

Java 部署到Weblogic 11g的Spring Boot应用程序赢得';开始

Java 部署到Weblogic 11g的Spring Boot应用程序赢得';开始,java,spring,weblogic,spring-boot,Java,Spring,Weblogic,Spring Boot,我在将Spring引导应用程序部署到Weblogic 10.3.3服务器时遇到一些问题。我绝望地交叉着手指,希望有人以前见过这个问题。我使用Weblogic的管理控制台执行部署(这似乎进行得很顺利),但当我尝试启动应用程序时,Weblogic出现了一个错误: Caused By: java.lang.IllegalArgumentException: Invalid source 'com.example.Application' at org.springframework.boot.

我在将Spring引导应用程序部署到Weblogic 10.3.3服务器时遇到一些问题。我绝望地交叉着手指,希望有人以前见过这个问题。我使用Weblogic的管理控制台执行部署(这似乎进行得很顺利),但当我尝试启动应用程序时,Weblogic出现了一个错误:

Caused By: java.lang.IllegalArgumentException: Invalid source 'com.example.Application'
    at org.springframework.boot.BeanDefinitionLoader.load(BeanDefinitionLoader.java:223)
    at org.springframework.boot.BeanDefinitionLoader.load(BeanDefinitionLoader.java:144)
    at org.springframework.boot.BeanDefinitionLoader.load(BeanDefinitionLoader.java:127)
    at org.springframework.boot.SpringApplication.load(SpringApplication.java:620)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
    at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:139)
    at org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener.initWebApplicationContext(SpringBootContextLoaderListener.java:61)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
    at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:481)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:181)
    at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1863)
    at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3126)
    at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1512)
    at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:486)
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
    at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
    at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
    at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:247)
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
    at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
    at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27)
    at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:1267)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
    at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:409)
    at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:43)
    at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:569)
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:150)
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:116)
    at weblogic.deploy.internal.targetserver.operations.StartOperation.doCommit(StartOperation.java:143)
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:323)
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:844)
    at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1253)
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:440)
    at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:163)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:68)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
该应用程序使用spring boot legacy和web.xml作为WAR文件部署。它在Tomcat 6/7/8上运行良好。以下是我的相关配置文件:

web.xml

上下文配置位置
com.example.Application
org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener
org.springframework.web.context.request.RequestContextListener
springSecurityFilterChain
org.springframework.web.filter.DelegatingFilterProxy
springSecurityFilterChain
/*
错误
要求
地狱世界
org.springframework.web.servlet.DispatcherServlet
上下文属性
org.springframework.web.context.WebApplicationContext.ROOT
1.
地狱世界
/

weblogic.xml

地狱世界
org.slf4j*

通过堆栈跟踪,Spring Boot的BeanDefinitionLoader类似乎试图加载源类(在我的例子中,只是
com.example.Application
),但失败了,因为它没有将其视为类、资源或包。看看这里的BeanDefinitionLoader类:(第187行),我的应用程序类应该作为一个类加载。正如我提到的,它在Tomcat中工作得很好,但在Weblogic中却不行

我有没有遗漏一些Weblogic特有的东西?可能是文件编码问题吗?我的web.xml中是否缺少某些内容

谢谢你的时间

更新#1 在用尽Google和StackOverflow来尝试之后,我将
spring.main.sources:com.example.Application
添加到我的Application.yml中。没有效果


我目前的预感是web.xml中的contextAttribute参数可能与我的问题有关。只是不确定我还能改成什么。思考?

启动是否需要比Weblogic 10.3.3服务器支持的servlet版本更高的版本?这个版本有点旧吗

检查您的war构建是否与Weblogic服务器运行的Java版本相同。例如,如果是1.6版本,则在运行gradle build之前,将JAVA_HOME设置为1.6 JDK。

对可爱、讽刺的伪Hipster标题进行向下投票。@CPerkins lol够公平的了……我将更改标题。不过这是数字。我向stackoverflow提出的第一个问题让人觉得我太可爱了。不酷。这看起来像是类路径问题,您的war结构是什么样子的?您是否需要将spring添加到您的
首选应用程序包中
,以便它不使用weblogic附带的版本?因为我从来没有看到过书名的讽刺。我最近睡眠不足。这是个好问题。投票结果被推翻了。@CPerkins-不用担心。这是一个很好的建议,但就像最初的海报一样,我正在处理同一个无效的源代码,即使是遗留的部分。更奇怪的是,我有一个项目效果很好,而另一个项目失败了。所以我正在努力找出区别。一个是WebMVC,一个是严格意义上的web服务。我希望这不是问题所在,但我准备让另一个成为WebMVC只是为了看看。我会报告我的发现。
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
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_2_5.xsd">

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>com.example.Application</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener</listener-class>
</listener>

<listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>ERROR</dispatcher>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>

<servlet>
    <servlet-name>helloWorld</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextAttribute</param-name>
        <param-value>org.springframework.web.context.WebApplicationContext.ROOT</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>helloWorld</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
<wls:weblogic-web-app 
xmlns:wls="http://www.bea.com/ns/weblogic/weblogic-web-app" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app 
    http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">

<wls:context-root>helloWorld</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>