XMLドキュメントの解析を含むJira用のプラグインを書いています。私はこれを行うためにJAXBを使用しています(XMLからpojoへ、またはその逆)。したがって、JAXBを使用してpojoからXMLを生成するクラスがあります。のように見えます...
import javax.xml.bind.*;
Class Parser {
public void m1() {
...
// code which uses classes in javax.xml.bind.*
}
public static void main(String args[]){
Parser p=new Parser();
p.m1();
}
}
上記のパッケージには、JDKディストリビューション(rt.jar)が付属しています。だから私はクラスを実行するために他に何も中継していません。
'java'を使用してコマンドラインから起動すると、正しく機能しています。しかし、それをjarとしてパッケージ化し、プラグインとしてJiraに配置すると、次のエラーで失敗します。
javax.xml.bind.JAXBException: Provider com.sun.xml.bind.v2.ContextFactory not found
- with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory]
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:152)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:299)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:372)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:337)
これは同じマシン上にあります。私が見ることができる唯一の違いは、コマンドラインからの起動とは異なります。Jiraにデプロイした場合、インスタンス化によってmain()ではなくm1()を呼び出します。
何が起こっているのだろうか!同じマシン上にあります。Jiraがアプリケーションを起動する方法がわかりません(コマンドラインから起動しているため)。