我正在尝试在JIRA中实现一个使用SOAP来联系的监听器 一个Web服务,(实际上它是OTRS,另一个问题管理系统)。 我选择遵循SimpleListener实现(JIRA Listener 事件),而不是atlassian事件。 我选择通过插件机制实现它,而不是 在JIRA的CLASSPATH中安装一次性静态类。 (也许这是错误的决定,我不知道)。
注意:我对SOAP,WSDL以及JIRA的内部知识不太了解 (codehouse,osgi)。 我接着是大致的指示: https://developer.atlassian.com/docs/getting-started/set-up-the-atlassian-plugin-sdk-and-build-a-project/create-a-helloworld-plugin-project (以及后续的说明页)。
我使用atlas-create-jira-plugin为JIRA创建了一个插件。
我生成了(使用org.apache.axis.wsdl.WSDL2Java类 - 我认为 它被称为Apache的Axis版本1 - 在命令行模式下 WSDL文件:standardTicketActionsSoap.wsdl) 我添加到插件中的一堆Java类,例如:
org/otrs/www/TicketConnector/GenericTicketConnector.java
org/otrs/www/TicketConnector/GenericTicketConnectorLocator.java
org/otrs/www/TicketConnector/GenericTicketConnector_BindingStub.java
org/otrs/www/TicketConnector/GenericTicketConnector_PortType.java
org/otrs/www/TicketConnector/OTRS_Article.java
org/otrs/www/TicketConnector/OTRS_Attachment.java
org/otrs/www/TicketConnector/OTRS_DynamicField.java
org/otrs/www/TicketConnector/OTRS_Error.java
org/otrs/www/TicketConnector/OTRS_PendingTime.java
org/otrs/www/TicketConnector/OTRS_TicketCreate_Ticket.java
org/otrs/www/TicketConnector/OTRS_TicketGetResponse_Article.java
org/otrs/www/TicketConnector/OTRS_TicketGetResponse_Attachment.java
org/otrs/www/TicketConnector/OTRS_TicketGetResponse_Ticket.java
org/otrs/www/TicketConnector/OTRS_TicketSearch_DynamicField.java
org/otrs/www/TicketConnector/OTRS_TicketSearch_TicketFlag.java
org/otrs/www/TicketConnector/OTRS_TicketUpdate_Ticket.java
org/otrs/www/TicketConnector/SessionCreate.java
org/otrs/www/TicketConnector/SessionCreateResponse.java
org/otrs/www/TicketConnector/TicketCreate.java
org/otrs/www/TicketConnector/TicketCreateResponse.java
org/otrs/www/TicketConnector/TicketGet.java
org/otrs/www/TicketConnector/TicketSearch.java
org/otrs/www/TicketConnector/TicketSearchResponse.java
org/otrs/www/TicketConnector/TicketUpdate.java
org/otrs/www/TicketConnector/TicketUpdateResponse.java
我必须根据以下内容手动修改两个生成的类: How to solve SAXException: Invalid element in, 避免" org.xml.sax.SAXException:无效元素"错误。
我对这种方法有三个问题,其中第三个问题是 真正的问题:
a)使用FastDev或使用atlas-cli' pi'命令没有 工作,使用" [INFO]等待命令......" symtom(如: 在atlassian的答案页面主题:fastdev-not-end-up-the-processing 但是修复对我来说不起作用),我总是需要完全关闭 JIRA测试安装并重启它。这可能是由于一些错误 插件配置,虽然颈部疼痛,但我可以暂时忍受。
b)通过Maven(atlas-run或atlas-build)的命令行构建没有 报告任何错误,而使用Eclipse编译项目将失败 用:项目构建错误:无法解析的构建扩展:插件com.atlassian.maven.plugins:maven-jira-plugin:5.0.13或其中一个依赖项无法解析:未能找到com.atlassian.maven.plugins: maven-jira-plugin:http://repo.maven.apache.org/maven2中的jar:5.0.13缓存在本地存储库中,在中心的更新间隔过去或强制更新之前,不会重新尝试解析
c)当监听器被执行时,我得到一个讨厌的: java.lang.LinkageError:加载器约束违规:解析字段" service"引用类,org / apache / axis / client / Stub和类加载器(org / apache / catalina / loader / WebappClassLoader的实例)对于字段的已解析类型,org / apache / catalina / loader / WebappClassLoader,具有该类型的不同Class对象 在 org.otrs.www.TicketConnector.GenericTicketConnector_BindingStub。(GenericTicketConnector_BindingStub.java:98) 这是真正的表演者。
这可能是一个简单的Maven配置问题吗? 感谢,
米歇尔