gpt4 book ai didi

java - Maven 项目在 prod 中寻找不存在的路径

转载 作者:行者123 更新时间:2023-12-01 16:54:36 26 4
gpt4 key购买 nike

我在我的软件中使用配置文件,该文件位于正确的根目录(非本地)src/main/java/pdf/factory/fop.xconf。编译代码后,它在本地查找文件 fopBaseUri=C:\Users\user\Documents\software\local\target\data\bin\content\sftw.web-0.0.0-SNAPSHOT.war\WEB-INF\classes\pdf\fopfactorybasedir\fop.xconf

我没有那个路径,只有C:\Users\user\Documents\software\local\target\data\bin所以我已经创建了路径的其余部分,并且它的工作方式应该是这样的..

但是,当我部署时,它不起作用,可能是因为编译后路径不存在,并且在mvn install时它全部删除。

我如何强制它查看路径,或者强制文件成为我使用的文件(非本地到 src/...)

这是我的代码:

@ApplicationScoped
public class FopFactoryService {
private static final String ROOT_PATH = "/pdf/fopfactorybasedir/fop.xconf";
private final FopFactory fopFactory;
private final FOUserAgent foUserAgent;
private final TransformerFactory transformerFactory;

public FopFactoryService() throws URISyntaxException, IOException, SAXException {
final URI uri = FopFactoryService.class.getResource(ROOT_PATH).toURI();
final File f = new File(uri.getPath());
LOG.info("fopBaseUri={}", f);
fopFactory = FopFactory.newInstance(f);
foUserAgent = fopFactory.newFOUserAgent();
transformerFactory = TransformerFactory.newInstance();
}

我错过了什么?

最佳答案

maven 构建后,该文件现在可以位于服务器上。

vfs路径是内部的,Jboss为自己创建的虚拟文件系统,但仅限于jboss使用的内部内存。新的 File() 查找真实的硬盘位置。不存在这样的路径,因为它只是虚拟的。这是自 Jboss 版本 5 以来的一个常见问题,因此解决方案通过这里回答的这个问题:Not getting absolute file path from resources如果你得到 java.lang.ClassCastException: java.io.FileInputStream cannot be cast to org.jboss.vfs.VirtualFile不用类型转换就试试吧。希望它对某人有帮助。

关于java - Maven 项目在 prod 中寻找不存在的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61612596/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com