我创建了一个用于解组XML的jar,我正在使用以下代码搜索xsd

Thread.currentThread().getContextClassLoader().getResource(DEFAULT_XSD_NAME)


哪里
DEFAULT_XSD_NAME =“ destination.xsd”

我的xsd文件与具有以上代码的类位于相同的包结构中,并且位于相同的级别。
这在我的独立应用程序中运行良好,但是当我将jar放在web应用程序中lib目录下的以下代码中

Thread.currentThread().getContextClassLoader().getResource(DEFAULT_XSD_NAME).getFile()


下面给我空指针异常是堆栈跟踪

java.lang.NullPointerException

    com.raisonne.tr.impex.xmlprocessor.impl.XMLUnmarshallerImpl.validateXML(XMLUnmarshallerImpl.java:194)
    com.raisonne.tr.impex.xmlprocessor.impl.XMLUnmarshallerImpl.unmarshal(XMLUnmarshallerImpl.java:85)
    com.raisonne.tr.service.impex.impl.DestinationImportServiceImpl.parseXMLToObject(DestinationImportServiceImpl.java:95)
    com.raisonne.tr.service.impex.impl.DestinationImportServiceImpl.startDestinationImport(DestinationImportServiceImpl.java:82)
    com.raisonne.tr.backoffice.actions.impex.DestinationImportAction.destinationImport(DestinationImportAction.java:118)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)


我在tomcat 6.0.29上运行该应用程序。

任何帮助/指针是这方面的applicied.additonaly,如果我有一些独立于容器的解决方案将是很好。

最佳答案

将其放在default package中应该可以使用

要么

Thread.currentThread().getContextClassLoader().getResource("/com/your/package/"+DEFAULT_XSD_NAME)

关于java - getResource未在Webapp中加载资源,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4603137/

10-15 17:09