问题:
在测试阿里云的云小蜜功能,官网给出的SDK是个main,直接运行的时候没有报错,但是将这个main改成一个可供调用的方法,在maven项目中调用的时候这个方法就开始报错
一开始以为是Tomcat和main方法运行存在相应区别导致的,不知道如何解决,
报错位置如下:
后来发现使用main加载和Tomcat加载有个区别,他们使用的类加载器不一样,直接使用main启动的时候使用的是ClassLoader,正常加载,当使用Tomcat启动的时候是使用WebappClassLoader来加载的,然后就开始报错了.
- main正常运行
- Tomcat调用报错
- debug查找
解决:
经过公司大神指点,更改官网给出的maven依赖版本, 从4.3.4改成4.5.0,两个依赖版本加载project.properties文件存在差别
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.0</version>
</dependency>
4.5.0版本加载方式如下:
props.load(UserAgentConfig.class.getClassLoader().getResourceAsStream("project.properties"));