不知道怎么解决
import org.apache.commons.configuration2.{FileBasedConfiguration, PropertiesConfiguration}
import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder
import org.apache.commons.configuration2.builder.fluent.Parameters
/**
* 配置工具类
*/
object ConfigurationManager {
// 创建用于初始化配置生成器实例的参数对象
private val params = new Parameters()
// FileBasedConfigurationBuilder:产生一个传入的类的实例对象
// FileBasedConfiguration:融合FileBased与Configuration的接口
// PropertiesConfiguration:从一个或者多个文件读取配置的标准配置加载器
// configure():通过params实例初始化配置生成器
// 向FileBasedConfigurationBuilder()中传入一个标准配置加载器类,生成一个加载器类的实例对象,然后通过params参数对其初始化
private val builder = new FileBasedConfigurationBuilder[FileBasedConfiguration](classOf[PropertiesConfiguration])
.configure(params.properties().setFileName("abc.properties"))
// 通过getConfiguration获取配置对象
val config = builder.getConfiguration()
}
在进行调用的时候
val jsonStr = ConfigurationManager.config.getString(Constants.TASK_PARAMS)
报如下错:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.commons.beanutils.PropertyUtilsBean.addBeanIntrospector(Lorg/apache/commons/beanutils/BeanIntrospector;)V
at org.apache.commons.configuration2.beanutils.BeanHelper.initBeanUtilsBean(BeanHelper.java:631)
at org.apache.commons.configuration2.beanutils.BeanHelper.<clinit>(BeanHelper.java:89)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.sun.proxy.$Proxy0.<clinit>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:739)
at org.apache.commons.configuration2.builder.fluent.Parameters.createParametersProxy(Parameters.java:307)
at org.apache.commons.configuration2.builder.fluent.Parameters.properties(Parameters.java:246)
at com.atguigu.commons.conf.ConfigurationManager$.<init>(ConfigurationManager.scala:24)
at com.atguigu.commons.conf.ConfigurationManager$.<clinit>(ConfigurationManager.scala)
at com.atguigu.session.SessionStat$.main(SessionStat.scala:21)
at com.atguigu.session.SessionStat.main(SessionStat.scala)
pom文件相关参数
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-configuration2</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>
默认commons-beanutils-core是1.8.0版本。
后来加上了
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils-core</artifactId>
<version>1.8.3</version>
</dependency>
解决