访问网络服务时出现以下错误。应用common-logging.jar但发布了din解决方案。
org.apache.commons.discovery.DiscoveryException:访问轴webservice时没有为org.apache.commons.logging.LogFactory定义实现
能够从测试项目中使用main方法访问相同的服务,该测试项目包括jaxrpc,mail.jar,wsdl4.jar,commons-discovery-0.2.jar,commons-logging-api -...如下所示 1
但同样的服务给出了包含以下jar列表的问题..除了0.2之外还添加了commons-discovery-0.4
答案 0 :(得分:2)
您的IDE中没有依赖关系层次结构选项卡。因此,如下所述,检查依赖树Install maven:
下载maven bin压缩文件
解压缩并粘贴到Program Files文件夹
编辑路径环境变量(在路径中添加maven bin文件夹位置)
转到项目主目录
运行以下命令:
mvn dependency:tree -Doutput=output.txt
这将生成maven依赖树。
现在检查pom.xml中的所有依赖项多次显示(使用Ctrl + F)功能或手动执行。现在使用<exclusions>
标记删除依赖关系,该依赖关系会显示两次以上(已经为axis2-kernel解释过,就像那样)。
现在单独添加commons-loging maven依赖:
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.0.3</version>
</dependency>
此过程将删除重复的依赖项并删除您的commons-logging框架问题。
如果面对问题只是评论。
答案 1 :(得分:1)
通过将以下内容添加到commons-logger.properties并将文件添加到classpath
来解决问题org.apache.commons.logging.Log = org.apache.commons.logging.impl.Log4JLogger org.apache.commons.logging.LogFactory = org.apache.commons.logging.impl.LogFactoryImpl
答案 2 :(得分:0)
如果这有助于某人在JUnit单元测试中遇到此异常,则以下内容对我不起作用。
@BeforeClass
public static void beforeClass() {
System.setProperty("org.apache.commons.logging.LogFactory",
"org.apache.commons.logging.impl.LogFactoryImpl");
System.setProperty("org.apache.commons.logging.Log",
"org.apache.commons.logging.impl.Log4JLogger");
}
用以下内容替换第一个陈述是有效的。
System.setProperty(LogFactory.FACTORY_PROPERTY, LogFactory.FACTORY_DEFAULT);