Четене на XML файл dataStoreBD = DataStoreFinder.getDataStore(params) връща нула

Имам някои проблеми при разработването на Maven project с Eclipse. Опитах се да потърся в нета, но няма нищо подобно.

За да обобщя, използвам WFSDataStore (geotools), за да получа колекцията от функции от XML и след това да добавя към база данни.

Има две различни поведения:

  1. Когато направя Run As > Java Application всичко е правилно и кодът работи.
  2. #P4#
    public static void dataAccess(String getCapabilities, WFSDataStoreFactory dsf) throws Exception {
    // Variables
    // WFS Connection
    Map connectionParameters = new HashMap();
    connectionParameters.put(WFSDataStoreFactory.URL.key, getCapabilities);
    connectionParameters.put(WFSDataStoreFactory.PROTOCOL.key, false);
    connectionParameters.put(WFSDataStoreFactory.LENIENT.key, true);
    connectionParameters.put(WFSDataStoreFactory.MAXFEATURES.key, "5");
    connectionParameters.put(WFSDataStoreFactory.TIMEOUT.key, 600000);
    
    // Database Connection
    DataStore dataStoreBD = null;
    Transaction transaction = null;
    Filter filter = null;
    
    Map<String, String> params = new HashMap<String, String>();
    params.put("dbtype", configTypeDatabase);
    params.put("host", configIp);
    params.put("port", configPort);
    params.put("schema", configUser);
    params.put("database", configDatabase);
    params.put("user", configUser);
    params.put("passwd", configPassword);
    params.put("accessToUnderlyingConnectionAllowed", true);
    dataStoreBD = DataStoreFinder.getDataStore(params);
    // Etc. }
    
    #P5#
    SimpleFeatureSource initialBDFeatureSource = dataStoreBD.getFeatureSource(configDatesTable);
    FeatureIterator<SimpleFeature> ifs = initialBDFeatureSource.getFeatures().features();
    
    #P6#
    #P7#

person Frederic    schedule 22.12.2015    source източник
comment
Предполагам, че това е част от уеб услуга? Как изграждате военното досие? Може да разбивате spi файловете.   -  person Ian Turton    schedule 22.12.2015
comment
@iant Съжалявам, но какви са spi файловете? Е, конфигурирах pom.xml за изграждане на .war файл. Кажете ми конкретно какво искате да знаете и аз ще ви разкажа за това.   -  person Frederic    schedule 23.12.2015
comment
Вижте docs.geotools.org/stable/userguide/welcome/use.html (търсете във FactoryFinder), ако не внимавате, можете да загубите .spi файловете, които казват на GeoTools къде да намери своите фабрики   -  person Ian Turton    schedule 23.12.2015


Отговори (1)


Първо, внедрих проекта, за да опитам нещо друго (използвайки tomcat7 и добавяйки информацията от tomcat.xml (път на проекта от Eclipse's workspace) към context.xml (tomcat7 път: C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf).

Тогава изучавах връзките (pool, jndi и jdbc), защото не можах да се свържа правилно с моята база данни. Ето защо в крайна сметка промених връзката jdbc (интерфейс с общо предназначение към релационни бази данни) на jndi (интерфейс с общо предназначение към системи за именуване), като следното:

Map<String, String> params = new HashMap<String, String>();
params.put("dbtype", configTypeDatabase);
params.put("jndiReferenceName", "java:comp/env/jdbc/DBName");
params.put("accessToUnderlyingConnectionAllowed", true);
params.put("schema", configUser);

Пропускам някои параметри, защото те не са значими, нито ирелевантни за jndi връзката. Причината е малко трудна, защото след разрешаването й дори не мога да я обясня. Винаги, когато се опитвах да стартирам Java Application или option 1 локално, винаги работеше, но дефинирах връзката като търсене (<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/DBName"/>), така че работи само с jndi, когато трябва да го стартирате или внедрите с maven.

Ако намеря повече информация, ще актуализирам отговора си, за да го изчистя или да го подобря.

person Frederic    schedule 05.01.2016