rest und PostgreSQL
3 posts
• Page 1 of 1
rest und PostgreSQL
Hallo,
waren gerade dabei die neue REST-Anbindung zu testen. Dabei fällt auf, dass man bei einem Request auf http://server:port/webapp/services/rest ... GE_NAME/PK mit einem PK vom Integer-Typ unter PostgreSQL ein Fehler auftritt.
Scheinbar wird die URL geparst und PK bleibt in einem String. Das dürfte bei MySql funktionieren wegen automatischem Typecast, allerdings bei PostgreSQL nicht.
Abgesehen davon:
Die Dokumentation der REST-Anbindung wird beim Google Chrome vom Forum abgeschnitten. Womöglich weil das div eine zu geringe Breite hat.
Von
im Firefox bleibt beim Chrome nur
übrig.
waren gerade dabei die neue REST-Anbindung zu testen. Dabei fällt auf, dass man bei einem Request auf http://server:port/webapp/services/rest ... GE_NAME/PK mit einem PK vom Integer-Typ unter PostgreSQL ein Fehler auftritt.
Scheinbar wird die URL geparst und PK bleibt in einem String. Das dürfte bei MySql funktionieren wegen automatischem Typecast, allerdings bei PostgreSQL nicht.
- Code: Select all
Internal Server Error (500) - fetch statement failed! - SELECT * FROM v_machine_data WHERE id = ?
at org.restlet.resource.ServerResource.doHandle(ServerResource.java:505)
at org.restlet.resource.ServerResource.get(ServerResource.java:695)
at org.restlet.resource.ServerResource.doHandle(ServerResource.java:577)
at org.restlet.resource.ServerResource.doNegotiatedHandle(ServerResource.java:637)
at org.restlet.resource.ServerResource.doConditionalHandle(ServerResource.java:336)
at org.restlet.resource.ServerResource.handle(ServerResource.java:899)
at org.restlet.resource.Finder.handle(Finder.java:243)
at org.restlet.routing.Filter.doHandle(Filter.java:156)
at org.restlet.routing.Filter.handle(Filter.java:203)
at org.restlet.routing.Router.doHandle(Router.java:428)
at org.restlet.routing.Router.handle(Router.java:645)
at org.restlet.routing.Filter.doHandle(Filter.java:156)
at org.restlet.routing.Filter.handle(Filter.java:203)
at org.restlet.routing.Filter.doHandle(Filter.java:156)
at org.restlet.routing.Filter.handle(Filter.java:203)
at org.restlet.routing.Router.doHandle(Router.java:428)
at org.restlet.routing.Router.handle(Router.java:645)
at org.restlet.routing.Filter.doHandle(Filter.java:156)
at org.restlet.routing.Filter.handle(Filter.java:203)
at org.restlet.routing.Filter.doHandle(Filter.java:156)
at org.restlet.routing.Filter.handle(Filter.java:203)
at org.restlet.routing.Filter.doHandle(Filter.java:156)
at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:151)
at org.restlet.routing.Filter.handle(Filter.java:203)
at org.restlet.routing.Filter.doHandle(Filter.java:156)
at org.restlet.routing.Filter.handle(Filter.java:203)
at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:208)
at org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:75)
at org.restlet.Application.handle(Application.java:378)
at org.restlet.routing.Filter.doHandle(Filter.java:156)
at org.restlet.routing.Filter.handle(Filter.java:203)
at org.restlet.routing.Router.doHandle(Router.java:428)
at org.restlet.routing.Router.handle(Router.java:645)
at org.restlet.routing.Filter.doHandle(Filter.java:156)
at org.restlet.routing.Filter.handle(Filter.java:203)
at org.restlet.routing.Router.doHandle(Router.java:428)
at org.restlet.routing.Router.handle(Router.java:645)
at org.restlet.routing.Filter.doHandle(Filter.java:156)
at org.restlet.routing.Filter.handle(Filter.java:203)
at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:208)
at org.restlet.Component.handle(Component.java:389)
at org.restlet.Server.handle(Server.java:513)
at org.restlet.engine.ServerHelper.handle(ServerHelper.java:69)
at org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.java:149)
at org.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:1089)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
Caused by: javax.rad.persist.DataSourceException: fetch statement failed! - SELECT * FROM v_machine_data WHERE id = ?
at com.sibvisions.rad.persist.jdbc.DBAccess.fetch(Unknown Source)
at com.sibvisions.rad.persist.jdbc.DBStorage.executeFetch(Unknown Source)
at com.sibvisions.rad.persist.AbstractStorage.fetch(Unknown Source)
at com.sibvisions.rad.persist.AbstractStorage.fetch(Unknown Source)
at com.sibvisions.rad.persist.AbstractStorage.fetchBean(Unknown Source)
at com.sibvisions.rad.server.http.rest.AbstractStorageServerResource.executeFetch(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.restlet.resource.ServerResource.doHandle(ServerResource.java:494)
... 58 more
Caused by: java.sql.SQLException: PostgreSQL-42883: ERROR: operator does not exist: integer = character varying
Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Position: 39
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2103)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1836)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:273)
... 69 more
Abgesehen davon:
Die Dokumentation der REST-Anbindung wird beim Google Chrome vom Forum abgeschnitten. Womöglich weil das div eine zu geringe Breite hat.
Von
- Code: Select all
Wenn der PK aus mehreren Spalten zusammengesetzt ist, müssen die Query Parameter verwendet werden:
http://server:port/webapp/services/rest/APPLICATION_NAME/LIFECYCLE_CLASS/data/STORAGE_NAME?PKCOLUMN=VALUE&PKCOLUMN2=VALUE
im Firefox bleibt beim Chrome nur
- Code: Select all
Wenn der PK aus mehreren Spalten zusammengesetzt ist, müssen die Query Parameter verwendet werden:
http://server:port/webapp/services/rest/APPLICATION_NAME/LIFECYCLE_CLASS/data/STORAGE_NAME?PK
übrig.
- alladinbp
- Posts: 39
- Joined: Tue Oct 11, 2011 2:27 pm
Re: rest und PostgreSQL
Die REST Anbindung ist noch taufrisch - vielen Dank für den Test mit PostgreSql. In der Tat ist Postgresql bei Typ Konvertierung etwas spezieller als andere Datenbanken. Wir haben diesbezüglich noch ein paar andere Punkte offen.
Die Doku ist mal ein erster Entwurf und wurde vorab schon veröffentlicht obwohl das Feature eigentlich nur in den Sourcen zu haben ist. Wir werden uns natürlich umgehend um die Korrektur aller Punkte bemühen.
Die Doku ist mal ein erster Entwurf und wurde vorab schon veröffentlicht obwohl das Feature eigentlich nur in den Sourcen zu haben ist. Wir werden uns natürlich umgehend um die Korrektur aller Punkte bemühen.
-
Development@SIB - Posts: 325
- Joined: Mon Sep 28, 2009 1:54 pm
Re: rest und PostgreSQL
Die Darstellung funktioniert nun mit Chrome. Mit Firefox haben wir keine Probleme festgestellt. Es wurde kein div verwendet, ein simples span.
Details zum REST Problem, siehe Support System.
Details zum REST Problem, siehe Support System.
-
Development@SIB - Posts: 325
- Joined: Mon Sep 28, 2009 1:54 pm
3 posts
• Page 1 of 1