当前位置: 首页 > 面试题库 >

从Java启动Spring应用程序的异常

万开畅
2023-03-14
问题内容

我可以使用Maven编译并启动Spring项目:

mvn -e clean compile exec:java -Dexec.mainClass=de.fraunhofer.fkie.tet.vmware.manager.Test

但是,当我使用maven-assembly- plugin(包括applicationContext.xml)将所有jar组合到一个文件中时,Exceptionjava执行过程中总是会得到一个:

java -cp target/test-jar-with-dependencies.jar:. de.fraunhofer.fkie.tet.vmware.manager.Test

  INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
  Sep 6, 2010 10:37:21 AM org.springframework.util.xml.SimpleSaxErrorHandler warning
  WARNING: Ignored XML validation warning
  org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document 'http://www.springframework.org/schema/context/spring-context.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.
  ...
  Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: 
  Line 10 in XML document from class path resource [applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: 
  The matching wildcard is strict, but no declaration can be found for element 'context:annotation-config'.
  ...
  Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: 
  The matching wildcard is strict, but no declaration can be found for element 'context:annotation-config'.

我还尝试将架构定义(即spring-context.xsd等)直接附加到类路径,但是没有成功。

less src/main/resources/applicationContext.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"
         xmlns:context="http://www.springframework.org/schema/context"
         xsi:schemaLocation="http://www.springframework.org/schema/beans
                             http://www.springframework.org/schema/beans/spring-beans.xsd
                             http://www.springframework.org/schema/context 
                             http://www.springframework.org/schema/context/spring-context.xsd">

      <context:annotation-config />   <!-- wegen '@PostConstruct' -->
  <!--<context:component-scan base-package="de.fraunhofer" />     -->
  ...
  </beans>

问题答案:

Spring命名空间处理程序使用文件/META-INF/spring.schemas和解析/META- INF/spring.handlers。由于具有这些名称的文件存在于不同的Spring jar中,因此可能只有其中一个保留在目标jar之后maven- assembly-plugin

也许您可以手动合并这些文件,然后以某种方式配置maven-assembly-plugin为使用此合并文件覆盖目标jar中的文件。



 类似资料:
  • 我已经编写了一个Java应用程序,它可以构建flume配置文件,并将它们写入Linux机器上的磁盘。然后,应用程序构建flume命令,并尝试通过运行以下代码中的命令来启动flume代理: 如果我接受flume命令并通过终端手动执行它,它工作得很好。当java应用程序尝试执行flume命令时,什么都没有发生。这是类路径问题吗? Flume Command here: /root/flume-flum

  • 问题内容: 我有一个Java应用程序。 该应用程序具有一个设置,该设置决定该应用程序是否在启动时启动。 目前,我可以通过在“启动项目”文件夹中放置/删除快捷方式来实现此目的。 但是,我想知道是否有更好的方法来处理此行为。 编辑 是的,它是Windows。抱歉,之前没有清除该内容。 该应用程序具有一个用户可以在其中触发动作的UI,并且该应用程序在运行时会定期在后台运行一些任务。 @Peter,如何在

  • 问题内容: 我正在寻找一种从Matlab中启动应用程序的方法。问题是,我的Matlab脚本将一些结果保存到文件中,然后应在关联的应用程序中打开(在这种情况下为Blender)。 我熟悉类似的命令 要么 以及其他一些方法,但实际上,该应用程序是从Matlab PATH启动的,因此它在Matlab目录中查找所需的各种库。例如: 是否有某种方法可以启动使用全局(系统)PATH的应用程序? 不久前,我以为

  • 我有一份Java申请。 应用程序有一个决定应用程序是否在启动时启动的设置。 目前,我通过在StartUp items文件夹中放置/删除快捷方式实现了这一点。 然而,我想知道是否有更好的方法来处理这种行为。 编辑 是的,是视窗。抱歉之前没有清除。 应用程序有一个UI,用户可以在其中触发操作,并且应用程序在运行时定期在后台运行一些任务。 @Peter,如何使用应用程序中的代码更改注册表?这种方法是否与

  • 我试图创建一个应用程序,但我一直遇到相同的运行时异常。我已经和它斗争了好几天,我不知道如何修复它。任何建议都将不胜感激!这是我在Java中的第一个相当长的项目,所以我决心解决它;只是有相当多的麻烦,我不知道如何克服这一点。

  • 我在intellij上启动spring boot应用程序时遇到问题,它失败了,并显示以下消息:与目标VM断开连接,地址:'127.0.0.1:49784',传输:'socket' 过程结束,退出代码为255。以前有人遇到过这种情况吗?