我在AEM6.0的OSGi包中部署了一个状态为Active的包。但是当我尝试在某个页面中使用它的运行时时,它显示了一些异常:
05.06.2015 18:12:29.460 *ERROR* [0:0:0:0:0:0:0:1 [1433499148835] GET /content/g0/en/about-us/career/jobs.html HTTP/1.1] org.apache.sling.engine.impl.SlingRequestProcessorImpl service: Uncaught SlingException
java.lang.NoClassDefFoundError: javax/xml/namespace/QName
...
....
...
Caused by: java.lang.ClassNotFoundException: javax.xml.namespace.QName not found by com.**.wcm.recruitment-client [499]
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1557)
at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1998)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 240 common frames omitted我试图操作pom.xml下的导入包和导出包,但仍然存在疑虑。
关于我试图操作的XML,请参见下面的内容。
<plugin>
...
...
<instructions>
<Bundle-Activator>com.**.recruitment.Activator</Bundle-Activator>
**<Import-Package>
!javax.xml.namespace,*
</Import-Package>
<Export-Package>
com.**.recruitment.client,
com.**.recruitment.ws
</Export-Package>
<Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
...
...
</plugin>发布于 2015-06-05 18:52:21
说明:<Import-Package>!javax.xml.namespace, *</Import-Package>避免导入包javax.xml.namespace,这与您需要的相反。只需删除!
确保在您的OSGi环境中导出javax.xml.namespace包:在任何情况下都应该是默认的,您可以通过设置此环境变量来尝试:
org.osgi.framework.system.packages.extra=javax.xml.namespace;<other packages>https://stackoverflow.com/questions/30664378
复制相似问题