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

时间:2012-07-13 05:40:21

标签: plugins jar confluence atlassian-plugin-sdk

我已经能够理解在朋友的帮助下将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. 修改用户界面,以便我可以接受用户输入的值,例如For Eg Credentials。
  3. 使用这些凭据并点击Web服务方法并获取有效用户的票证。
  4. 现在我只能使用我无权修改它们的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的组合,我依赖于给我带来麻烦。任何导致相同的结果都会非常有用。

1 个答案:

答案 0 :(得分: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但不是1.1.1中转换为org.apache.commons.logging.LogFactory,但我没有测试过。

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