Good evening,
First, I would like to thank you a lot for your hard work to offer us
such an impressive API !
I'm new to Geotools and Java coding too so I apology for my question .
I'm trying to display a wfs layer that was published in Geoserver within
a MapContent (org.geotools.map.MapContent).
For the symbology's wfs layer , i'm trying to parse a ysld file also
stored in GeoServer and queried via the rest interface.
But , I'm not able to correctly parse the file into a
StyleLayerDescriptor object for further rendering.
I'd be very grateful if a skilled guru would tell me what's wrong with
my bad coding.
I tried to add a newline , a tab , a space between each line read in
inputLine but the result is always the same error : /Unable to turn ...
into reader/
/while ((inputLine = in.readLine()) != null) {//
// response.append(inputLine);
// ///response.append('\n');///// }
/Here is the ysld file content , the java class, the pom.xml and the
errors reported :
/----------------------------------------------------------------------------------------------------------------------------------------------------------------//
//gare.ysld :
//title: gare//
//symbolizers://
//- point://
// size: 4//
// symbols://
// - mark://
// shape: circle//
// fill-color: '#ff00ff'//
//
//----------------------------------------------------------------------------------------------------------------------------------------------------------------//
//affWFS.java:
///*//
// * 2023 - Septembre//
// *//
// * API GeoTools//
// *//
// * Test affichage WFS GeoServer//
////
//*///
// package sig;//
////
//import java.io.BufferedReader;//
//import java.io.InputStreamReader;//
//import java.net.URL;//
//import java.net.URLConnection;//
//import java.util.Base64;//
//import java.util.HashMap;//
//import java.util.Map;//
//import java.util.logging.Level;//
//import java.util.logging.Logger;//
//import org.geotools.data.DataStore;//
//import org.geotools.data.DataStoreFinder;//
////
//import org.geotools.data.simple.SimpleFeatureSource;//
//import org.geotools.map.FeatureLayer;//
//import org.geotools.map.Layer;//
//import org.geotools.map.MapContent;//
//import org.geotools.styling.Style;//
//import org.geotools.styling.StyledLayer;//
//import org.geotools.styling.StyledLayerDescriptor;//
//import org.geotools.swing.JMapFrame;//
//import org.geotools.ysld.Ysld;//
////
//public class affWFS {//
////
// private static final Logger LOGGER =
org.geotools.util.logging.Logging.getLogger(affWFS.class);//
// /**//
// * GeoTools Quickstart demo application. Prompts the user for a
shapefile and displays its//
// * contents on the screen in a map frame//
// * @param args//
// * @throws java.lang.Exception//
// *///
// public static void main(String[] args) throws Exception {//
// // display a data store file chooser dialog for shapefiles//
// LOGGER.info( "Quickstart");//
// LOGGER.config( "Welcome Developers");//
// LOGGER.log(Level.INFO, "java.util.logging.config.file={0}",
System.getProperty("java.util.logging.config.file"));//
////
// String getCapabilities =
"http://xxx.xx.x.xxx:8080/geoserver/wfs?REQUEST=GetCapabilities";//
// String featureClass = "sde:gare";//
////
// Map connectionParameters = new HashMap();//
//connectionParameters.put("WFSDataStoreFactory:GET_CAPABILITIES_URL",
getCapabilities );//
//connectionParameters.put("WFSDataStoreFactory.WFS_STRATEGY.key",
"geoserver");//
////
// DataStore dataStore = DataStoreFinder.getDataStore(
connectionParameters );//
////
// SimpleFeatureSource featureSource =
dataStore.getFeatureSource(featureClass);//
////
// MapContent map = new MapContent();//
// map.setTitle("Service OGS WFS " + featureClass);//
////
// String urlString =
"http://xxx.xx.x.xx:8080/geoserver/rest/workspaces/sde/styles/gare.ysld";//
// String username = "xxxxx";//
// String password = "xxxxxxx";//
// String userpass = username + ":" + password;//
// String basicAuth;//
// basicAuth = "Basic " + new
String(Base64.getEncoder().encode(userpass.getBytes()));//
////
// URL url = new URL(urlString);//
// URLConnection conn = url.openConnection();//
// conn.setRequestProperty("Authorization" , basicAuth);//
////
////
// BufferedReader in = new BufferedReader(new
InputStreamReader(conn.getInputStream()));//
////
// StringBuilder response = new StringBuilder();//
// String inputLine;//
////
// while ((inputLine = in.readLine()) != null) {//
// response.append(inputLine);//
// }//
////
// in.close(); //
////
// System.out.println(response);//
////
// StyledLayerDescriptor gareSldDesc = Ysld.parse(response);//
////
// StyledLayer gareStyle = gareSldDesc.getStyledLayers()[0];//
////
// Style gareFsStyle = (Style)gareStyle;//
////
// //Style style =
SLD.createSimpleStyle(featureSource.getSchema());//
// //Layer layer = new FeatureLayer(featureSource, style);//
////
// Layer layer = new FeatureLayer(featureSource, gareFsStyle);//
// map.addLayer(layer);//
////
// // Now display the map//
// JMapFrame.showMap(map);//
////
// //SimpleFeatureType schema = data.getSchema( typeName );//
////
// //FeatureSource<SimpleFeatureType, SimpleFeature> source =
data.getFeatureSource( typeName );//
// //System.out.println( "Metadata Bounds: " + source.getBounds()
);//
// }//
//}//
////
//----------------------------------------------------------------------------------------------------------------------------------------------------------------//
//pom.xml :
//<?xml version="1.0" encoding="UTF-8"?>//
////
//<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"//
// xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">//
// <modelVersion>4.0.0</modelVersion>//
////
// <groupId>sig</groupId>//
// <artifactId>consultation</artifactId>//
// <version>1.0-SNAPSHOT</version>//
////
// <name>consultation</name>//
// <!-- FIXME change it to the project's website -->//
// <url>http://www.example.com</url>//
////
// <properties>//
//<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>//
//<maven.compiler.source>1.7</maven.compiler.source>//
//<maven.compiler.target>1.7</maven.compiler.target>//
//<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>//
// <geotools.version>29.2</geotools.version>//
// <maven.deploy.skip>true</maven.deploy.skip>//
// </properties>//
////
// <dependencies>//
// <dependency>//
// <groupId>junit</groupId>//
// <artifactId>junit</artifactId>//
// <version>4.13</version>//
// <scope>test</scope>//
// </dependency>//
// <dependency>//
// <groupId>org.geotools</groupId>//
// <artifactId>gt-swing</artifactId>//
// <version>${geotools.version}</version>//
// </dependency>//
// <dependency>//
// <groupId>org.geotools</groupId>//
// <artifactId>gt-opengis</artifactId>//
// <version>${geotools.version}</version>//
// </dependency>//
// <dependency>//
// <groupId>org.geotools</groupId>//
// <artifactId>gt-ysld</artifactId>//
// <version>${geotools.version}</version>//
// </dependency>//
// <dependency>//
// <groupId>org.geotools</groupId>//
// <artifactId>gt-epsg-hsql</artifactId>//
// <version>${geotools.version}</version>//
// </dependency>//
// <dependency>//
// <groupId>org.geotools</groupId>//
// <artifactId>gt-wfs-ng</artifactId>//
// <version>${geotools.version}</version>//
// </dependency>//
// </dependencies>//
// <repositories>//
// <repository>//
// <id>osgeo</id>//
// <name>OSGeo Release Repository</name>//
//<url>https://repo.osgeo.org/repository/release/</url>//
//<snapshots><enabled>false</enabled></snapshots>//
//<releases><enabled>true</enabled></releases>//
// </repository>//
// <repository>//
// <id>osgeo-snapshot</id>//
// <name>OSGeo Snapshot Repository</name>//
//<url>https://repo.osgeo.org/repository/snapshot/</url>//
//<snapshots><enabled>true</enabled></snapshots>//
//<releases><enabled>false</enabled></releases>//
// </repository>//
// </repositories>//
// <build>//
// <pluginManagement><!-- lock down plugins versions to avoid using
Maven defaults (may be moved to parent pom) -->//
// <plugins>//
// <plugin>//
// <inherited>true</inherited>//
//<groupId>org.apache.maven.plugins</groupId>//
//<artifactId>maven-compiler-plugin</artifactId>//
// <version>3.10.1</version>//
// <configuration>//
// <source>1.8</source>//
// <target>1.8</target>//
// </configuration>//
// </plugin>//
// <!-- clean lifecycle, see
https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle
-->//
// <plugin>//
//<artifactId>maven-clean-plugin</artifactId>//
// <version>3.1.0</version>//
// </plugin>//
// <!-- default lifecycle, jar packaging: see
https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging
-->//
// <plugin>//
//<artifactId>maven-resources-plugin</artifactId>//
// <version>3.0.2</version>//
// </plugin>//
// <plugin>//
//<artifactId>maven-surefire-plugin</artifactId>//
// <version>2.22.1</version>//
// </plugin>//
// <plugin>//
//<artifactId>maven-jar-plugin</artifactId>//
// <version>3.0.2</version>//
// </plugin>//
// <plugin>//
//<artifactId>maven-install-plugin</artifactId>//
// <version>2.5.2</version>//
// </plugin>//
// <plugin>//
//<artifactId>maven-deploy-plugin</artifactId>//
// <version>2.8.2</version>//
// </plugin>//
// <!-- site lifecycle, see
https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle
-->//
// <plugin>//
//<artifactId>maven-site-plugin</artifactId>//
// <version>3.7.1</version>//
// </plugin>//
// <plugin>//
//<artifactId>maven-project-info-reports-plugin</artifactId>//
// <version>3.0.0</version>//
// </plugin>//
// </plugins>//
// </pluginManagement>//
// </build>//
//</project>//
////
//----------------------------------------------------------------------------------------------------------------------------------------------------------------//
////error report:
//cd /home/yvan/NetBeansProjects/consultation;
JAVA_HOME=/usr/lib/jvm/java-19-openjdk-amd64
/usr/lib/apache-netbeans/java/maven/bin/mvn -Dexec.vmArgs=
"-Dexec.args=${exec.vmArgs} -classpath %classpath ${exec.mainClass}
${exec.appArgs}" -Dexec.appArgs= -Dexec.mainClass=sig.affWFS
-Dexec.executable=/usr/lib/jvm/java-19-openjdk-amd64/bin/java
--no-transfer-progress process-classes
org.codehaus.mojo:exec-maven-plugin:3.1.0:exec//
//Scanning for projects...//
////
//-----------------< sig:consultation >-----------------//
//Building consultation 1.0-SNAPSHOT//
// from pom.xml//
//--------------------------------[ jar ]---------------------------------//
////
//--- resources:3.0.2:resources (default-resources) @ consultation ---//
//Using 'UTF-8' encoding to copy filtered resources.//
//skip non existing resourceDirectory
/home/yvan/NetBeansProjects/consultation/src/main/resources//
////
//--- compiler:3.10.1:compile (default-compile) @ consultation ---//
//Nothing to compile - all classes are up to date//
////
//--- exec:3.1.0:exec (default-cli) @ consultation ---//
//sept. 21, 2023 3:16:29 PM sig.affWFS main//
//INFOS: Quickstart//
//sept. 21, 2023 3:16:29 PM sig.affWFS main//
//INFOS: java.util.logging.config.file=null//
////title: garesymbolizers:- point: size: 4 symbols: -
mark: shape: circle fill-color: '#ff00ff'
Exception in thread "main" java.lang.IllegalArgumentException: Unable to
turn title: garesymbolizers:- point: size: 4 symbols: -
mark: shape: circle fill-color: '#ff00ff' into reader//
// at org.geotools.ysld.Ysld.reader(Ysld.java:79)//
// at org.geotools.ysld.Ysld.parse(Ysld.java:156)//
// at org.geotools.ysld.Ysld.parse(Ysld.java:181)//
// at sig.affWFS.main(affWFS.java:89)//
//Command execution failed.//
//org.apache.commons.exec.ExecuteException: Process exited with an
error: 1 (Exit value: 1)//
// at org.apache.commons.exec.DefaultExecutor.executeInternal
(DefaultExecutor.java:404)//
// at org.apache.commons.exec.DefaultExecutor.execute
(DefaultExecutor.java:166)//
// at org.codehaus.mojo.exec.ExecMojo.executeCommandLine
(ExecMojo.java:1000)//
// at org.codehaus.mojo.exec.ExecMojo.executeCommandLine
(ExecMojo.java:947)//
// at org.codehaus.mojo.exec.ExecMojo.execute (ExecMojo.java:471)//
// at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
(DefaultBuildPluginManager.java:126)//
// at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2
(MojoExecutor.java:328)//
// at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute
(MojoExecutor.java:316)//
// at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:212)//
// at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:174)//
// at org.apache.maven.lifecycle.internal.MojoExecutor.access$000
(MojoExecutor.java:75)//
// at org.apache.maven.lifecycle.internal.MojoExecutor$1.run
(MojoExecutor.java:162)//
// at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute
(DefaultMojosExecutionStrategy.java:39)//
// at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:159)//
// at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:105)//
// at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:73)//
// at
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
(SingleThreadedBuilder.java:53)//
// at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
(LifecycleStarter.java:118)//
// at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)//
// at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)//
// at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)//
// at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)//
// at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)//
// at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)//
// at jdk.internal.reflect.DirectMethodHandleAccessor.invoke
(DirectMethodHandleAccessor.java:104)//
// at java.lang.reflect.Method.invoke (Method.java:578)//
// at
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
(Launcher.java:283)//
// at org.codehaus.plexus.classworlds.launcher.Launcher.launch
(Launcher.java:226)//
// at
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
(Launcher.java:407)//
// at org.codehaus.plexus.classworlds.launcher.Launcher.main
(Launcher.java:348)//
//------------------------------------------------------------------------//
//BUILD FAILURE//
//------------------------------------------------------------------------//
//Total time: 6.140 s//
//Finished at: 2023-09-21T15:16:33+02:00//
//------------------------------------------------------------------------//
//Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.1.0:exec
(default-cli) on project consultation: Command execution failed.:
Process exited with an error: 1 (Exit value: 1) -> [Help 1]//
////
//To see the full stack trace of the errors, re-run Maven with the -e
switch.//
//Re-run Maven using the -X switch to enable full debug logging.//
////
//For more information about the errors and possible solutions, please
read the following articles://
//[Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException/
Thank you for your help :)
_______________________________________________
GeoTools-GT2-Users mailing list
GeoTools-GT2-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users