我使用maven生成了具有依赖关系的“包” .jar,但是在部署时,部署它的开发人员会遇到以下错误:
10:23:27.604 [http-nio-8080-exec-1] DEBUG org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver - Resolving exception from handler [public org.springframework.http.ResponseEntity<?> company.Api.convertXmlToPdf(javax.servlet.http.HttpServletRequest)]: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javafx/util/Pair
10:23:27.606 [http-nio-8080-exec-1] DEBUG org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver - Resolving exception from handler [public org.springframework.http.ResponseEntity<?> company.Api.convertXmlToPdf(javax.servlet.http.HttpServletRequest)]: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javafx/util/Pair
10:23:27.606 [http-nio-8080-exec-1] DEBUG org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Resolving exception from handler [public org.springframework.http.ResponseEntity<?> company.Api.convertXmlToPdf(javax.servlet.http.HttpServletRequest)]: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javafx/util/Pair
.jar文件似乎不包含对javafx / util / Pair的任何依赖。
我尝试使用maven添加依赖项,将lib添加到项目中:
<dependency>
<groupId>javafx</groupId>
<artifactId>jfxrt</artifactId>
<version>2.2.3</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/jfxrt.jar</systemPath>
</dependency>
不起作用。
我尝试添加
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>8.8.3</version>
<configuration>
<mainClass>hermes.Api</mainClass>
</configuration>
</plugin>
在我的构建配置(pom)中。也不起作用...
在本地测试时,它运行良好,所有测试都通过了,我得到了结果。当使用maven构建软件包生命周期时,构建成功。但是,部署后,我遇到了上面提到的错误,例如找不到Pair
类...
开发者机器和部署机器都在使用
java版本“ 1.8.0_171”
Java(TM)SE运行时环境(内部版本1.8.0_171-b11)
Java HotSpot(TM)64位服务器VM(内部版本25.171-b11,混合模式)
(部署机器使用的是_172版本...)
编辑:这不是解决问题的方法,但是由于代码中使用的javafx的唯一部分是Pair,所以我用AbstractMap.SimpleEntry替换了它,它与Pair几乎相同。我希望这可以帮助某人...