我有一个带有Axis2 Web Service的SOA应用程序,我正在使用JOOQ来创建我的实体并访问数据库。在我的数据服务文件中,我有以下代码:
public Contact[] findContactByName(String name) {
try {
Contact[] result = new ContactFacade().findContactsByName(name);
return result;
} catch (Exception ex) {
// TODO: Add Error Logger
return null;
}
}
如果我在与Web服务相同的项目中调用此代码,它可以正常工作,但是当我从客户端应用程序调用该服务时,我在控制台中收到以下消息。
[WARN] Unable to locate a BeanInfo cache for class org.jooq.impl.AbstractQueryPart (stopClass=class java.lang.Object). This will negatively affect performance!
[WARN] Unable to locate a BeanInfo cache for class org.jooq.impl.AbstractTable (stopClass=class org.jooq.impl.AbstractQueryPart). This will negatively affect performance!
[WARN] Unable to locate a BeanInfo cache for class org.jooq.impl.TableImpl (stopClass=class org.jooq.impl.AbstractTable). This will negatively affect performance!
[WARN] Unable to locate a BeanInfo cache for class org.jooq.impl.IdentityImpl (stopClass=class java.lang.Object). This will negatively affect performance!
[WARN] Unable to locate a BeanInfo cache for class org.jooq.impl.AbstractQueryPart (stopClass=class java.lang.Object). This will negatively affect performance!
[WARN] Unable to locate a BeanInfo cache for class org.jooq.impl.AbstractField (stopClass=class org.jooq.impl.AbstractQueryPart). This will negatively affect performance!
[WARN] Unable to locate a BeanInfo cache for class org.jooq.impl.TableFieldImpl (stopClass=class org.jooq.impl.AbstractField). This will negatively affect performance!
[WARN] Unable to locate a BeanInfo cache for class org.jooq.impl.IdentityConverter (stopClass=class java.lang.Object). This will negatively affect performance!
[WARN] Unable to locate a BeanInfo cache for class org.jooq.impl.DefaultDataType (stopClass=class java.lang.Object). This will negatively affect performance!
[WARN] Unable to locate a BeanInfo cache for class org.jooq.impl.DefaultDataType (stopClass=class java.lang.Object). This will negatively affect performance!
[WARN] Unable to locate a BeanInfo cache for class org.jooq.impl.DefaultDataType (stopClass=class java.lang.Object). This will negatively affect performance!
最后一个警告会无限期地重复,直到服务触发服务超时。
感谢您的帮助。
答案 0 :(得分:1)
我花了一段时间,但我设法解决了这个问题并解决了它。
事实证明,当尝试传递使用上面的jooq生成的类('TableImpl','TableFieldImpl',.....)时会发生此错误。
因此,在配置中设置选项以生成POJO为true,它将创建具有基本结构的POJO类。在您的DAO中,在获取记录时,将它们提取到POJO对象中并通过服务返回。
这是一个样本电话:
List<Contact> contactsList = context.selectFrom(Tables.CONTACT)
.where(Tables.CONTACT.NAME.equal("somevalue")).fetchInto(Contact.class);
希望这有助于其他人:)