JOOQ支持Axis2 WebServices

时间:2014-08-15 08:30:16

标签: java web-services axis2 jooq

我有一个带有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!

最后一个警告会无限期地重复,直到服务触发服务超时。

感谢您的帮助。

1 个答案:

答案 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);

希望这有助于其他人:)