我尝试创建一个 Spring 启动可部署的war文件,然后将其部署到weblogic 12 c。应用程序启动失败,出现异常:
Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
ERROR SpringApplication - Application startup failed
org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'graphQLServletRegistrationBean' defined in class path resource
...
嵌套异常为:
java.lang.IllegalStateException: No *.graphqls files found on classpath. Please add a graphql schema to the classpath or add a SchemaParser bean to your application context.
实际上,上面提到的文件*.graphqls
存在于WEB-INF/classes/
文件夹下的war中,如果将war文件解压到本地磁盘,以展开的格式重新部署app,我们就不会看到这个异常。
我错过什么了吗?
- 谢谢-谢谢
3条答案
按热度按时间dtcbnfnu1#
我在这个漏洞中浪费了8个小时,拼凑我从其他面临同样问题的人那里得到的各种线索。
现在在服务器上创建一个文件夹,例如/home/oracle/wars/myapp,然后将WAR的解压缩内容复制到该文件夹中。
然后转到"部署-安装",导航到/home/oracle/wars/并从单选按钮列表中选择myapp文件夹,只需按照默认步骤进行部署。
请注意,您需要一个普通的web.xml文件以及weblogic.xml,否则Weblogic不会将其视为"Web应用程序"**
作为展开的WAR进行部署是一种避免创建_wl_cls_gen.jar的解决方法,而创建_wl_cls_gen.jar正是此问题的根源。
最后,对于这个特定的错误,/*. graphqls文件在部署到weblogic时找不到,下面的任何操作都不起作用,我提到它,这样你就不会浪费时间了:
1.在POM中添加资源标签
源代码/main/资源/.属性**/.图形
1.更新版本的GraphQL库,我尝试了它,从graphql 7. 0. 1开始,所有东西都失败了,出现了这个错误
1.在POM中添加Spring启动启动器父项
2nc8po8w2#
在没有看到代码或知道spring-boot版本的情况下,很难真正诊断问题。为了让我的spring-boot应用程序在WebLogic上运行,这里和那里都做了一些小的修改。我认为应该包含weblogic.xml和一些依赖项
主要的一个是向我的应用程序类添加
implements WebApplicationInitializer
,如下所示。看起来有一些其他的问题与你的类似,也许这些可以帮助你。看起来你可能有问题的Spring启动与其他Spring(但不是Spring启动)的依赖关系。这是不可能的,因为我不知道你的pom文件或应用程序类文件看起来像什么。
One
Two
Three
Four
4urapxun3#
我已经找出了这个问题的原因。在weblogic中部署war文件时有点奇怪。它创建了一个内部的_wl_cls_gen. jar文件来打包/WEB-INF/classes文件夹的所有文件。
但是应用程序仍然在类似于/j2ee/wl 12/cp_domain/servers/cp_msp01/tmp/_WL_user/cpapps-graphql-results/g4 qyhf/war/WEB-INF/classes/**/*.graphqls的匹配目录中查找资源,并且没有找到匹配的资源。