cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick Bonnett <rbonn...@mesca.com>
Subject SQLTemplate problems in 3.1B2
Date Tue, 16 Apr 2013 12:38:22 GMT
I'm trying to use SQLTemplate queries and running into a strange problem. This snippet works
fine if I run it in a plain Java application, but fails if I then use it within a web service
running under Glassfish.
In both cases I am using the same cayenne metadata files. I have also noticed the same issue
when using EJBQL queries.


ServerRuntime cayenneRuntime = new ServerRuntime("cayenne-cayenne-service-template.xml");
ObjectContext context = cayenneRuntime.getContext();


SQLTemplate  sql = new SQLTemplate(Accessorial.class,"SELECT * FROM live.tbl_accessorials");
String pgSql = "SELECT * FROM live.tbl_accessorials";
sql.setTemplate(PostgresAdapter.class.getName(), pgSql);
Collection<Accessorial> accessorials = context.performQuery(sql);


I have tried this both with and without the Postgres specific template - same result either
way. Works fine in a console app, fails running under the web server.

This seems to be the relevant section of the stack trace:

Caused by: java.lang.NoClassDefFoundError: org/apache/velocity/runtime/parser/ParseException
at org.apache.cayenne.access.jdbc.SQLTemplateAction.performAction(SQLTemplateAction.java:102)
at org.apache.cayenne.access.DataNodeQueryAction.runQuery(DataNodeQueryAction.java:87)
at org.apache.cayenne.access.DataNode.performQueries(DataNode.java:280)
at org.apache.cayenne.access.DataDomainQueryAction.runQuery(DataDomainQueryAction.java:442)
at org.apache.cayenne.access.DataDomainQueryAction.access$000(DataDomainQueryAction.java:70)
at org.apache.cayenne.access.DataDomainQueryAction$2.transform(DataDomainQueryAction.java:415)
at org.apache.cayenne.access.DataDomain.runInTransaction(DataDomain.java:877)
at org.apache.cayenne.access.DataDomainQueryAction.runQueryInTransaction(DataDomainQueryAction.java:412)
at org.apache.cayenne.access.DataDomainQueryAction.execute(DataDomainQueryAction.java:122)
at org.apache.cayenne.access.DataDomain.onQueryNoFilters(DataDomain.java:758)
at org.apache.cayenne.access.DataDomain$DataDomainQueryFilterChain.onQuery(DataDomain.java:1009)
at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:748)
at org.apache.cayenne.util.ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:350)
at org.apache.cayenne.util.ObjectContextQueryAction.executePostCache(ObjectContextQueryAction.java:106)
at org.apache.cayenne.util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:93)
at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:989)
at org.apache.cayenne.access.DataContext.performQuery(DataContext.java:978)
at com.mesca.services.AccessorialService.allAccessorialRows(AccessorialService.java:83)

Any ideas on what I am missing here?

Thanks
Rick


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message