我正在使用包含所有依赖项的胖jar的GetFile()
。
我的问题是我正在尝试将配置XML发送到bean。现在我明白从java中访问驻留在jar中的文件略有不同,因为你不能使用<bean id="Configuration" class="com.evry.fs.tools.maskng.core.config.Configuration">
<property name="maskConfig">
<value>classpath:mask-configuration-deviations.xml</value>
</property>
</bean>
但是必须打开它们作为URL资源,所以我改变了我的bean构造函数但是现在它抱怨没有合格的bean对于这种类型
这是我设置bean的XML:
public Configuration(Resource resource) throws ConfigurationException, ParserConfigurationException {
//Do nothing
}
public void setMaskConfig(Resource resource) throws ConfigurationException, ParserConfigurationException {
try {
InputStream configRes=resource.getInputStream();
File configFile=new File(resource.getURL().getFile());
this.maskConfig=maskConfig;
if (!(configFile != null && configFile.exists() && configFile.isFile() && configFile.canRead())) {
throw new IllegalArgumentException("Files does not exist or is not readable: " + configFile.getAbsolutePath());
}
logger.info( "Using configuration {}", configFile.getAbsolutePath() );
XMLConfiguration xmlConfiguration = new XMLConfiguration();
xmlConfiguration.setRootElementName( "maskng" );
xmlConfiguration.setExpressionEngine( new XPathExpressionEngine() );
xmlConfiguration.setFile( configFile );
xmlConfiguration.reload();
xmlConfiguration.setThrowExceptionOnMissing( true );
xmlConfiguration.load();
this.hierarchicalConfiguration = xmlConfiguration;
this.xmlConfiguration = xmlConfiguration;
} catch(IOException iEx) {
throw new ConfigurationException("Error creating config: "+iEx);
}
}
以下是接收它的bean类:
public Configuration(@Value("classpath:mask-configuration-deviations.xml") File configFile) throws ConfigurationException, ParserConfigurationException
我得到的错误是:
org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为&#39;配置&#39;在URL [jar:file:/data/home/dobbscr/dev/masking/maskng-crd/maskng-batch/target/maskng-batch-1.0-SNAPSHOT-executable.jar!/ META-INF / spring / configuration-中定义context.xml中]: 通过类型为[org.springframework.core.io.Resource]的索引0的构造函数参数表示的不满意的依赖性:找不到依赖的类型[org.springframework.core.io.Resource]的限定bean:预期至少有1个bean符合条件作为此依赖关系的autowire候选者。依赖注释:{}; 嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:找不到类型为[org.springframework.core.io.Resource]的限定bean依赖:预期至少有1个bean符合此依赖关系的autowire候选者。依赖注释:{}
任何帮助表示感谢,因为这让我感到疯狂
仅供参考 - 我已经完成了所有工作,使用来自java main的作业启动器,然后构造函数和函数看起来像这样....当我在jar中使用所有内容时,我被告知不会工作... < / p>
public void setMaskConfig(@Value("classpath:mask-configuration.xml") File configFile) throws ConfigurationException, ParserConfigurationException
和
onCameraMoveStarted