Java中XMLGregorianCalendar的NoClassDefFoundError

Java中XMLGregorianCalendar的NoClassDefFoundError,java,rest,spring-mvc,jaxb,Java,Rest,Spring Mvc,Jaxb,我正在使用Java6、ApacheTomcat和Jersey RESTful。在将XML解组到JAXB时,我遇到了以下异常。有人能帮我吗? 注意:此异常不一致 java.lang.NoClassDefFoundError: org/apache/xerces/jaxp/datatype/XMLGregorianCalendarImpl$Parser at org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl.<init&

我正在使用Java6、ApacheTomcat和Jersey RESTful。在将XML解组到JAXB时,我遇到了以下异常。有人能帮我吗? 注意:此异常不一致

java.lang.NoClassDefFoundError: org/apache/xerces/jaxp/datatype/XMLGregorianCalendarImpl$Parser
     at org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl.<init>(Unknown Source)
     at org.apache.xerces.jaxp.datatype.DatatypeFactoryImpl.newXMLGregorianCalendar(Unknown Source)
     at com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$13.parse(RuntimeBuiltinLeafInfoImpl.java:543)
     at com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$13.parse(RuntimeBuiltinLeafInfoImpl.java:517)
     at com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$CompositeTransducedAccessorImpl.parse(TransducedAccessor.java:241)
     at com.sun.xml.bind.v2.runtime.unmarshaller.LeafPropertyLoader.text(LeafPropertyLoader.java:61)
     at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.text(UnmarshallingContext.java:462)
     at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.processText(StAXStreamConnector.java:367)
     at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleEndElement(StAXStreamConnector.java:245)
     at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:214)
     at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:358)
     at com.sun.xml.bind.v2.runtime.BridgeImpl.unmarshal(BridgeImpl.java:120)
     at com.sun.xml.bind.api.Bridge.unmarshal(Bridge.java:233)
     at com.sun.xml.ws.server.sei.EndpointArgumentsBuilder$DocLit.readRequest(EndpointArgumentsBuilder.java:517)
     at com.sun.xml.ws.server.sei.EndpointArgumentsBuilder$Composite.readRequest(EndpointArgumentsBuilder.java:188)
     at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:243)
     at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:93)
     at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:598)
     at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:557)
     at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:542)
     at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:439)
     at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:243)
     at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:444)
     at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244)
     at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:134)
     at weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServletAdapter.java:272)
     at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:185)
     at weblogic.wsee.jaxws.JAXWSServlet.doPost(JAXWSServlet.java:180)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
     at weblogic.wsee.jaxws.JAXWSServlet.service(JAXWSServlet.java:64)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
     at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
     at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
     at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
     at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
     at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3498)
     at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
     at weblogic.security.service.SecurityManager.runAs(Unknown Source)
     at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
     at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
     at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
java.lang.NoClassDefFoundError:org/apache/xerces/jaxp/datatype/xmlgoriancalendarimpl$Parser
位于org.apache.xerces.jaxp.datatype.xmlgoriancalendarimpl(未知源)
位于org.apache.xerces.jaxp.datatype.DatatypeFactoryImpl.newXMLGregorianCalendar(未知源)
位于com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$13.parse(RuntimeBuiltinLeafInfoImpl.java:543)
位于com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$13.parse(RuntimeBuiltinLeafInfoImpl.java:517)
位于com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$CompositeTransducedAccessorImpl.parse(TransducedAccessor.java:241)
位于com.sun.xml.bind.v2.runtime.unmarshaller.LeafPropertyLoader.text(LeafPropertyLoader.java:61)
位于com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.text(UnmarshallingContext.java:462)
位于com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.processText(StAXStreamConnector.java:367)
位于com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleEndElement(StAXStreamConnector.java:245)
位于com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:214)
位于com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:358)
位于com.sun.xml.bind.v2.runtime.BridgeImpl.unmarshal(BridgeImpl.java:120)
位于com.sun.xml.bind.api.Bridge.unmarshal(Bridge.java:233)
位于com.sun.xml.ws.server.sei.EndpointArgumentsBuilder$DocLit.readRequest(EndpointArgumentsBuilder.java:517)
位于com.sun.xml.ws.server.sei.EndpointArgumentsBuilder$Composite.readRequest(EndpointArgumentsBuilder.java:188)
位于com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:243)
位于com.sun.xml.ws.server.sei.seinvokerTube.processRequest(seinvokerTube.java:93)
位于com.sun.xml.ws.api.pipe.Fiber.\uu doRun(Fiber.java:598)
位于com.sun.xml.ws.api.pipe.Fiber.\u-doRun(Fiber.java:557)
位于com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:542)
位于com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:439)
位于com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:243)
位于com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:444)
位于com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244)
位于com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:134)
在weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServletAdapter.java:272)
位于weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:185)
位于weblogic.wsee.jaxws.JAXWSServlet.doPost(JAXWSServlet.java:180)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
位于weblogic.wsee.jaxws.JAXWSServlet.service(JAXWSServlet.java:64)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
位于weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
位于weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
位于weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
位于weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
在weblogic.servlet.internal.WebAppServletContext$servleinvocationAction.run(WebAppServletContext.java:3498)
位于weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
位于weblogic.security.service.SecurityManager.runAs(未知源)
位于weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
位于weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
位于weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
在weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
在weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
我知道,你一直在添加类路径吗? 如果没有,请从下载并将其添加到项目类路径中


请给我反馈。享受:)

这是由于类路径中有多个xercesImpl.jar。这个jar可能来自您的应用程序、JDK和servlet容器。POM中的以下更改为我解决了这个问题

<dependency>
        <groupId>xerces</groupId>
        <artifactId>resolver</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>xerces</groupId>
        <artifactId>serializer</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>xerces</groupId>
      <artifactId>xercesImpl</artifactId>
      <scope>provided</scope>
    </dependency>

薛西斯
分解器
假如
薛西斯
序列化程序
假如
薛西斯
干细胞移植
假如

说明:java的新版本在jdk中有xerces库。此库与apache的xerses库冲突。 即使它说“没有课”,那也是因为有两个。
解决方案:检查您的项目是否符合此要求,并从依赖项中删除其中一项,然后构建项目

我们在类路径中使用Xercus,因为这个jar是依赖于Maven的jar之一。我知道当类路径中有Xercus jar时会出现这个问题。理想情况下,我们不应该在类路径中使用这个jar,因为这个jar是JDK附带的。我现在的问题是,我们如何避免这种情况?你得到了这个@SKC?