我使用JAXB在java中创建了一个MDB来解析xml内容。 这个MDB在10.3.4 weblogic服务器上工作了很长时间(大约3年)。
现在我要在weblogic 12.1.3服务器上迁移它,由于我还不知道的原因,weblogic选择的实现与我想要的不一样。但我无法弄清楚如何设置它。
现在我的代码初始化代码是这样的:
private JAXBContext getJAXBContext() throws JAXBException {
if (v1JaxbContext == null) {
v1JaxbContext = JAXBContext.newInstance(MyClass.class);
}
System.out.println("jaxbContext : "+v1JaxbContext.getClass().getName());
return v1JaxbContext;
}
MyClass.java由JAXB从XSD生成。
在我的eclipse上,输出是 com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl
在我的weblogic方面,输出是 org.eclipse.persistence.jaxb.JAXBContext
答案 0 :(得分:3)
当我通过EAR使用我的代码时,我不得不放下这些代码:
<wls:prefer-application-resources>
<resource-name>META-INF/services/javax.xml.bind.JAXBContext</resource-name>
</wls:prefer-application-resources>
在我的EAR services / javax.xml.bind.JAXBContex 的META-INF目录中创建该文件,该目录仅包含,并且可以正常工作
com.sun.xml.bind.v2.ContextFactory
答案 1 :(得分:1)
我遇到了同样的问题并制定了类似的解决方案,不需要创建新文件:
# -*- coding: utf-8 -*-
import sqlite3
conn = sqlite3.connect('storage/container.db')
c = conn.cursor()
c.execute("SELECT * FROM reports")
for row in c.fetchall():
for names in row:
print names