1

SOAPを使用してWebサービスに接続するリスナーをJIRAに実装しようとしています(実際にはOTRS、別の問題管理システムです)。アトラシアン イベントではなく、SimpleListener 実装 (JIRA リスナー イベント) に従うことにしました。JIRA の CLASSPATH に 1 回限りの静的クラスをインストールするのではなく、プラグイン メカニズムを介して実装することにしました。(多分それは間違った決定でした、私にはわかりません)。

注意: 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

「org.xml.sax.SAXException: 無効な要素」エラーを回避するために、生成された 2 つのクラスを次のように手動で変更する必要が ありました。

このアプローチには 3 つの問題があり、そのうち 3 つ目が本当の問題です。

a) FastDev または atlas-cli 'pi' コマンドを使用した更新が機能せず、「[INFO] コマンドを待機しています...」という現象が発生します (as: atlassian の回答ページのトピック: fastdev-not-end-up-処理中ですが、修正はうまくいきません) 、完全な JIRA テスト インストールをシャットダウンして再起動する必要があります。これは、プラグインの構成が間違っていることが原因である可能性があります。

b) Maven (atlas-run または atlas-build) を介したコマンドライン ビルドはエラーを報告しませんが、Eclipse でプロジェクトをコンパイルすると次のエラーが発生します。

プロジェクト ビルド エラー: 解決できないビルド拡張機能: プラグイン com.atlassian.maven.plugins:maven-jira-plugin:5.0.13 またはその依存関係の 1 つを解決できませんでした: com.atlassian.maven.plugins:maven-jira が見つかりません-plugin:jar:5.0.13 in http://repo.maven.apache.org/maven2がローカル リポジトリにキャッシュされました。解決は、中央の更新間隔が経過するか更新が強制されるまで再試行されません。

c) リスナーが実行されると、厄介なエラーが発生します: java.lang.LinkageError: ローダー制約違反: フィールド「サービス」を解決するときに、参照クラスのクラスローダー (org/apache/felix/framework/ModuleImpl$ModuleClassLoader のインスタンス) 、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 構成の問題でしょうか? ありがとう、

ミケーレ

4

0 に答える 0