I'm trying to create something that will insert a new row into a table. The
table is quite large, and at the moment, we keep changing the columns, as
it's still in development stages (sort of). So, I'm just passing the values
I want in the new row to another class. That class fills in the blanks with
either a blank string, or if the column has a default value, it uses that.
However, I have two problems. 1) None of the default values are being found,
even though the column names are. 2) When I commit the new row, I get this:
WARNING: javax.naming.OperationNotSupportedException: java.lang.String
java.io.IOException: An error occured while committing.
at
org.geotools.data.wfs.v1_0_0.WFSTransactionState.commit(WFSTransactionState.java:177)
at
org.geotools.data.DefaultTransaction.commit(DefaultTransaction.java:182)
at
com.terrapages.geoserver_wfst_db.DatabaseInterface.insertRow(DatabaseInterface.java:565)
at
com.terrapages.geoserver_wfst_db.servlet.InsertNewPoiServlet.doPost(InsertNewPoiServlet.java:204)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
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.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:298)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
I believe the two errors are connected, because I have used the exact same
insert code before just fine. It makes me think it's the values I'm sending
to the insert code. It seems likely that solving the default values problem
first will solve the second problem. Here's what I'm doing to get the column
names and default values:
WFS_1_0_0_DataStore wfs = (WFS_1_0_0_DataStore)getCapabilities(true,
baseGeoserverUrl);
if(wfs == null){
//Code that complains at the logs and returns. Irrelevant for this
problem.
}
List<AttributeDescriptor> fields = null;
try{
SimpleFeatureType schema = wfs.getSchema(tableName);
fields = schema.getAttributeDescriptors();
}catch(IOException e){
e.printStackTrace();
}
return fields
Where tableName is a String, not a Name.
This certainly returns AttributeDescriptors, because I can get the column
names from them. But when I ask for the default values, I always get null.
if(attr.getDefaultValue() == null){
entries.add("");
}else{
entries.add(attr.getDefaultValue().toString());
}
Where entries is an ArrayList<String>, and attr is the current
AttributeDescriptor.
The database is pgadmin, if that makes any difference.
Any ideas what I'm doing wrong?
--
View this message in context:
http://osgeo-org.1803224.n2.nabble.com/Using-the-default-values-in-a-new-row-tp6842711p6842711.html
Sent from the geotools-gt2-users mailing list archive at Nabble.com.
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users