【发布时间】:2014-02-20 14:44:24
【问题描述】:
我正在为 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 是如何启动应用程序的(因为我是从命令行启动的)。
【问题讨论】:
-
您构建的 JDK 版本是什么? JIRA 在什么 JDK 上运行?什么版本的 JIRA?
-
JDK 版本是 '1.6.0_15' & Jira 版本是 '4.0.1' Jira 在同一台机器上运行,所以应该使用相同的 JDK
-
嘿,我来了java.sun.com/products/jdk/faq/faq-sun-packages.html 好的,但我仍然想知道为什么它会失败
-
想了解这个weblogs.java.net/blog/kohsuke/archive/2007/02/… 相关的东西吗?
标签: java command-line jaxb launch