我正在为 Jira 编写一个涉及 XML 文档解析的插件。我正在使用 JAXB 这样做(XML 到 pojos,反之亦然)所以有一个使用 JAXB 从 pojos 生成 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 如何启动应用程序(因为我从命令行启动)。