访问轴webservice

时间:2016-12-09 06:24:59

标签: java apache jar axis2 webservices-client

访问网络服务时出现以下错误。应用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 list for test project

但同样的服务给出了包含以下jar列表的问题..除了0.2之外还添加了commons-discovery-0.4

enter image description here

3 个答案:

答案 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);