尝试从Confluence 3.0访问Web服务时获取SLF4JLogFactory异常

问题描述 投票:1回答:1

我已经能够在这里的朋友的帮助下了解将Jar文件添加到Confluence项目中的依赖关系和过程。但是我在添加这些JAR时遇到了错误。发现错误的确切原因是:

javax.servlet.ServletException: Servlet execution threw an exception
 at      org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:313) 

caused by: java.lang.ExceptionInInitializerError
 at org.apache.axis.attachments.AttachmentsImpl.<clinit>(AttachmentsImpl.java:39) 

caused by: java.lang.ClassCastException:   org.apache.commons.logging.impl.SLF4JLogFactory cannot be cast to org.apache.commons.logging.LogFactory  
 at org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:41)

我想要做的是:

  1. 编写自定义插件。
  2. 修改UI,以便我可以接受用户输入的值,例如For Eg Credentials。
  3. 使用这些凭据并点击Web服务方法并获取有效用户的票证。

现在我只能使用我无权修改它们的Web服务。因此,它可以与8个必需的罐子一起使用。其中我使用的不是我创造的那些。

 commons-discovery 0.2
 commons-logging 1.1
 jaxrpc 1.0
 log4j 1.0
 wsdl4j
 1.0 axis 1.4

如果我使用轴1.2.1而不是1.4;我收到了错误。

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.axis.description.ParameterDesc.setOmittable(Z)V

但是使用轴1.4可以在我当地的NON CONFLUENCE测试样本Java项目中获得所需的票证。 (我把我的代码放在粘贴盒中,以免问题变得非常长)

This is my POM.xml

This是我写的课程。事实上,我已经能够在“高级”区域中添加自定义选项卡,然后单击选项卡会触发执行方法。

This是我在生成的系统错误上看到的错误(标题为Oops的错误 - 发生错误。)

希望得到您的任何提示,这些提示可以极大地帮助您了解需要采取哪些措施来摆脱此错误。

我确信从Confluence调用Web服务必须不是一件复杂的苦差事。是JAR的组合,我依赖于给我带来麻烦。任何导致相同的将是非常有帮助的。

plugins jar confluence atlassian-plugin-sdk
1个回答
0
投票

Atlassian分叉轴库,Jira现在使用axis-1.3-atlassian-1而不是Apache的最新轴-1.4; axis-1.3-atlassian-1使用1.0.4版本的commons-logging,而不是1.1.1版本的axis-1.4。

更改插件从axis-1.4到axis-1.3-atlassian-1的依赖性为我解决了a similar problem。我怀疑SLF4JLogFactory可以在1.0.4中转换为org.apache.commons.logging.LogFactory而不是1.1.1,但我没有测试过。

编辑:这是where you can get the jar and source

© www.soinside.com 2019 - 2024. All rights reserved.