我创建了一个Jira插件,该插件在发生某些事件后向SOAP Web服务发送数据或从SOAP Web服务接收数据。为此,我编写了一个简单的SOAP客户端,它使用javax.xml.soap
通过HTTP发送请求。当我直接致电并测试客户端时,所有这些都可以正常工作,但是每当我将插件上传到本地Test-Jira时,这些操作都会失败。
调用SOAPConnectionFactory.newInstance()
时出现以下错误:
javax.xml.soap.SOAPException:
Unable to create SOAP connection factory:
com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnectionFactory cannot be cast to javax.xml.soap.SOAPConnectionFactory
我稍微调试了一下代码,显然com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnectionFactory
被硬编码为默认的soap连接工厂。如果在系统属性或jaxm.properties中未找到其他工厂,则使用默认工厂,然后将其强制转换为javax.xml.soap.SOAPConnectionFactory
。
我也在Atlassian开发者社区中问过这个问题。但是我认为,由于我通常对Web服务还很陌生,所以这可能是我不太了解SOAP的问题。
有人知道怎么做吗?如果无法强制转换为默认名称,为什么将其硬编码为默认名称?
如果需要,我也可以发布整个错误堆栈。