我使用 JAXB 1.0(JDK 1.5 和 Java Web Service Developer Pack 1.5)从 xsd 生成 java 类。它在本地运行良好。当我在服务器中尝试时,出现以下异常。
ErrMsg=[Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/xml/bind/unmarshaller/InterningXMLReader at
com.impl.runtime.UnmarshallerImpl.unmarshal(Unknown Source)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:157)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:162)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:171)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:189)
Caused by: java.lang.ClassNotFoundException: com.sun.xml.bind.unmarshaller.InterningXMLReader
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356) ... 9 more].
有什么帮助吗?
最佳答案
您需要将 jaxb-impl.jar 添加到 Java 构建路径中。 如果您使用 Eclipse 那么 右键单击您的项目,转到“属性”->“Java 构建路径”,单击“添加外部 JAR...”按钮,最后选择 jaxb-ri-20110512/lib/jaxb-impl.jar。除了 jaxb-impl.jar 之外,这还会自动添加 jaxb-api.jar、activation.jar、jsr173_1.0_api.jar 和 jaxb1-impl.jar。现在应该不会有任何问题了。
关于java.lang.NoClassDefFoundError java 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24624483/