<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">El 8 de marzo de 2017, 20:35, Alex Irmel Oviedo Solis <span dir="ltr">&lt;<a href="mailto:alleinerwolf@gmail.com" target="_blank">alleinerwolf@gmail.com</a>&gt;</span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Gracias Joaquin, probe la opción 2 y funciona bien, muchas gracias :-)<br></div></blockquote><div><br></div><div>De nada.<br> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"></div><div class="HOEnZb"><div class="h5"><br><div class="gmail_quote"><div dir="ltr">El mié., 8 de mar. de 2017 a la(s) 14:11, Joaquin Jose del Cerro Murciano &lt;<a href="mailto:jjdelcerro@gvsig.org" target="_blank">jjdelcerro@gvsig.org</a>&gt; escribió:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_-4039868952763534464gmail_msg"><div class="gmail_extra m_-4039868952763534464gmail_msg"><div class="gmail_quote m_-4039868952763534464gmail_msg">El 8 de marzo de 2017, 17:01, Alex Irmel Oviedo Solis <span dir="ltr" class="m_-4039868952763534464gmail_msg">&lt;<a href="mailto:alleinerwolf@gmail.com" class="m_-4039868952763534464gmail_msg" target="_blank">alleinerwolf@gmail.com</a>&gt;</span> escribió:<br class="m_-4039868952763534464gmail_msg"><blockquote style="margin-top:0px;margin-bottom:0px" class="gmail_quote m_-4039868952763534464gmail_msg"><div dir="ltr" class="m_-4039868952763534464gmail_msg"><div class="m_-4039868952763534464gmail_msg">Buenos dias a todos, estoy modificando el ejemplo de Control de acceso y estoy intentando modificarlo para autenticar con postgresql, el codigo que estoy usando es el siguiente:<br class="m_-4039868952763534464gmail_msg">------<br class="m_-4039868952763534464gmail_msg">String url = &quot;jdbc:postgresql://&quot; + prop.getProperty(&quot;db.host&quot;) + &quot;:5432/&quot; + prop.getProperty(&quot;<a href="http://db.name" class="m_-4039868952763534464gmail_msg" target="_blank">db.name</a>&quot;);<br class="m_-4039868952763534464gmail_msg">            Class.forName(&quot;org.postgresql.<wbr>Driver&quot;);<br class="m_-4039868952763534464gmail_msg">            <br class="m_-4039868952763534464gmail_msg">            Connection connection = DriverManager.getConnection(<wbr>url, conprops);<br class="m_-4039868952763534464gmail_msg">            String query = &quot;SELECT * FROM public.\&quot;Usuario\&quot; WHERE usuario=&#39;&quot; + id + &quot;&#39;&quot;;<br class="m_-4039868952763534464gmail_msg">            PreparedStatement ps = connection.prepareStatement(<wbr>query);<br class="m_-4039868952763534464gmail_msg">            ResultSet rs = ps.executeQuery();<br class="m_-4039868952763534464gmail_msg">            rs.next();<br class="m_-4039868952763534464gmail_msg"><br class="m_-4039868952763534464gmail_msg">            this.properties = new HashMap&lt;&gt;();<br class="m_-4039868952763534464gmail_msg">            this.properties.put(&quot;username&quot;<wbr>, rs.getString(&quot;usuario&quot;));<br class="m_-4039868952763534464gmail_msg">            this.properties.put(&quot;password&quot;<wbr>, rs.getString(&quot;clave&quot;));<br class="m_-4039868952763534464gmail_msg">            this.properties.put(&quot;fullname&quot;<wbr>, rs.getString(&quot;nombres&quot;));<br class="m_-4039868952763534464gmail_msg">            <br class="m_-4039868952763534464gmail_msg">            connection.close();<br class="m_-4039868952763534464gmail_msg">------<br class="m_-4039868952763534464gmail_msg"><br class="m_-4039868952763534464gmail_msg"></div>Y tengo este mensaje de error:<br class="m_-4039868952763534464gmail_msg">--------<br class="m_-4039868952763534464gmail_msg"><div class="m_-4039868952763534464gmail_msg">INFO main org.gvsig.tools.locator.<wbr>AbstractLocator - Created and stored the instance of org.gvsig.tools.identity.<wbr>manager in the singleton table (org.guamanpoma.<wbr>identitymanagement.impl.<wbr>DefaultDatabaseIdentityManager<wbr>/org.guamanpoma.<wbr>identitymanagement.impl.<wbr>DefaultDatabaseIdentityManager<wbr>@7a344b65).<br class="m_-4039868952763534464gmail_msg">ERROR AWT-EventQueue-0 org.guamanpoma.<wbr>identitymanagement.impl.<wbr>DefaultDatabaseIdentity - connect-db<br class="m_-4039868952763534464gmail_msg">java.lang.<wbr>ClassNotFoundException: Class org.postgresql.Driver not found through the plugin D:\gvSIG-desktop-2.3.1-2501-<wbr>final-win-x86_64\gvSIG\<wbr>extensiones\org.guamanpoma.<wbr>identitymanagement.app.<wbr>mainplugin<br class="m_-4039868952763534464gmail_msg">--------<br class="m_-4039868952763534464gmail_msg"></div><div class="m_-4039868952763534464gmail_msg"><br class="m_-4039868952763534464gmail_msg"></div><div class="m_-4039868952763534464gmail_msg">Obviamente este problema se debe a que no se encuentra el jar de postgresql. Trate de resolver el problema agregando la dependencia en el pom.xml para que cargue el driver con el scope compile y tambien con el scope runtime y no se soluciono. Estoy copiando manualmente el driver en la carpeta lib de la extensión a cada momento y quisiera saber si hay alguna manera de que esta depedencia se incluya sin hacer ninguna copia manual.<br class="m_-4039868952763534464gmail_msg"></div></div></blockquote></div></div></div><div dir="ltr" class="m_-4039868952763534464gmail_msg"><div class="gmail_extra m_-4039868952763534464gmail_msg"><div class="gmail_quote m_-4039868952763534464gmail_msg"><div class="m_-4039868952763534464gmail_msg"><br class="m_-4039868952763534464gmail_msg"><br class="m_-4039868952763534464gmail_msg"><br class="m_-4039868952763534464gmail_msg">Cada plugin de gvSIG se ejecuta con su propio classloader. Esto es asi para evitar, en la medida de lo posible, conflicto entre los jars que aporte cada uno de los plugins. Tu plugin, si no has configurado nada especial, tendra acceso a lo que haya en la carpeta lib de la instalacion de gvSIG y a los jars que hayan dentro de la carpeta del propio plugin; pero no a los jars de otros plugins.<br class="m_-4039868952763534464gmail_msg"><br class="m_-4039868952763534464gmail_msg">Si necesitas acceder a los jars que hayan en otros plugins tendras que indicarlo de forma explicita. Ten en cuenta que si dependes de los jars que aporta otro plugin, no tendras ninguna garantia que estaran ahi en la siguiente version del plugin, o que no se habran actualizado a una version con la que ya no son compatibles con tu codigo. Dicho esto, concretamente el jar de postgreql no creo que desaparezca o cambie mucho en las proximas versiones, asi que en lugar de incluirlo en tu plugin no parece una mala idea que dependas del plugin &quot;org.gvsig.postgresql.app.<wbr>mainplugin&quot;.<br class="m_-4039868952763534464gmail_msg"><br class="m_-4039868952763534464gmail_msg">Respecto a lo que comentas que has añadido al pom la dependencia con el artefecto de postgresql, la cuestion es que una cosa son las dependencias que fijes en el pom, y otra que esten disponibles esas dependencias en tiempo de ejecucion en tu classpath.<br class="m_-4039868952763534464gmail_msg"><br class="m_-4039868952763534464gmail_msg">¿ Como se haria para poder usar el jar de postgresql ?<br class="m_-4039868952763534464gmail_msg"><br class="m_-4039868952763534464gmail_msg">- Opcion 1, usar el que lleva gvSIG.<br class="m_-4039868952763534464gmail_msg">  Es la que te recomiendo.<br class="m_-4039868952763534464gmail_msg">  Por un lado deberas añadir en tu pom, la depdencia con <br class="m_-4039868952763534464gmail_msg">  el artefeacto maven como comentas que has hecho. Eso<br class="m_-4039868952763534464gmail_msg">  solventa el problema de compilacion, pero no el de<br class="m_-4039868952763534464gmail_msg">  ejecucion. La recomendacion ademas, es que no indiques<br class="m_-4039868952763534464gmail_msg">  la version, y que esta la coja de la declarada ya en <br class="m_-4039868952763534464gmail_msg">  el pom de &quot;org.gvsig.desktop&quot; del que seguramente heredaras.<br class="m_-4039868952763534464gmail_msg">  Con esto te aseguras que compilas contra la misma version<br class="m_-4039868952763534464gmail_msg">  del jar de postgresql que luego tendras en tiempo de ejecucion.<br class="m_-4039868952763534464gmail_msg">  <br class="m_-4039868952763534464gmail_msg">  El otro problema, ¿ que he de hacer para tener acceso al jar<br class="m_-4039868952763534464gmail_msg">  que hay en el plugin &quot;org.gvsig.postgresql.app.<wbr>mainplugin&quot; ?<br class="m_-4039868952763534464gmail_msg">  <br class="m_-4039868952763534464gmail_msg">  Tendras que editar el &quot;config.xml&quot; de tu plugin y tocar alli <br class="m_-4039868952763534464gmail_msg">  alguna cosilla. Alli veras unas lineas algo como:<br class="m_-4039868952763534464gmail_msg">  <br class="m_-4039868952763534464gmail_msg">        ...<br class="m_-4039868952763534464gmail_msg">        &lt;depends plugin-name=&quot;org.gvsig.app.<wbr>mainplugin&quot; /&gt;<br class="m_-4039868952763534464gmail_msg">        &lt;resourceBundle name=&quot;text&quot;/&gt;<br class="m_-4039868952763534464gmail_msg">        &lt;libraries library-dir=&quot;lib&quot;/&gt;<br class="m_-4039868952763534464gmail_msg">        &lt;extensions&gt;<br class="m_-4039868952763534464gmail_msg">        ...<br class="m_-4039868952763534464gmail_msg"><br class="m_-4039868952763534464gmail_msg">  El tag depends indica que añada al classpath de tu plugin, <br class="m_-4039868952763534464gmail_msg">  el del plugin que indiques. Por defecto esta puesto el del<br class="m_-4039868952763534464gmail_msg">  plugin &quot;org.gvsig.app.mainplugin&quot; que es el plugin principal<br class="m_-4039868952763534464gmail_msg">  de gvSIG y del que normalmente dependen todos. Para lo que<br class="m_-4039868952763534464gmail_msg">  te interesa simplemente añadiremos otra linea con el tag<br class="m_-4039868952763534464gmail_msg">  depends pero pondremos el nombre del plugin de postgresql.<br class="m_-4039868952763534464gmail_msg">  <br class="m_-4039868952763534464gmail_msg">        ...<br class="m_-4039868952763534464gmail_msg">        &lt;depends plugin-name=&quot;org.gvsig.app.<wbr>mainplugin&quot; /&gt;<br class="m_-4039868952763534464gmail_msg">        &lt;depends plugin-name=&quot;org.gvsig.<wbr>postgresql.app.mainplugin&quot; /&gt;<br class="m_-4039868952763534464gmail_msg">        &lt;resourceBundle name=&quot;text&quot;/&gt;<br class="m_-4039868952763534464gmail_msg">        &lt;libraries library-dir=&quot;lib&quot;/&gt;<br class="m_-4039868952763534464gmail_msg">        &lt;extensions&gt;<br class="m_-4039868952763534464gmail_msg">        ...<br class="m_-4039868952763534464gmail_msg">  <br class="m_-4039868952763534464gmail_msg">  Simplemente con esto ya tendremos acceso en tiempo de ejecucion<br class="m_-4039868952763534464gmail_msg">  al jar de postgresql que esta en ese plugin.<br class="m_-4039868952763534464gmail_msg"><br class="m_-4039868952763534464gmail_msg">- Opcion 2, incluir el jar que necesites en tu propio plugin.<br class="m_-4039868952763534464gmail_msg"><br class="m_-4039868952763534464gmail_msg">  En este caso yo no lo haria, pero por si acaso lo cuento.<br class="m_-4039868952763534464gmail_msg">  En maven, tenemos por un lado el pom, donde habla de dependencias,<br class="m_-4039868952763534464gmail_msg">  donde localizarlas y que versiones, pero no dice nada de como<br class="m_-4039868952763534464gmail_msg">  empaquetar tu proyecto, en este caso un plugin de gvSIG. Y por<br class="m_-4039868952763534464gmail_msg">  otro lado el &quot;assembly&quot; que indica como se ha de empaquetar el<br class="m_-4039868952763534464gmail_msg">  proyecto. En el caso de un plugin de gvSIG, tendras un fichero:<br class="m_-4039868952763534464gmail_msg">  <br class="m_-4039868952763534464gmail_msg">    src/main/assembly/gvsig-<wbr>plugin-package.xml<br class="m_-4039868952763534464gmail_msg">  <br class="m_-4039868952763534464gmail_msg">  Ahi, entre otras cosas tendras algo como:<br class="m_-4039868952763534464gmail_msg">  <br class="m_-4039868952763534464gmail_msg">  ...<br class="m_-4039868952763534464gmail_msg">    &lt;dependencySets&gt;<br class="m_-4039868952763534464gmail_msg">    &lt;dependencySet&gt;<br class="m_-4039868952763534464gmail_msg">      &lt;useProjectArtifact&gt;false&lt;/<wbr>useProjectArtifact&gt;<br class="m_-4039868952763534464gmail_msg">      &lt;useTransitiveDependencies&gt;<wbr>false&lt;/<wbr>useTransitiveDependencies&gt;<br class="m_-4039868952763534464gmail_msg">      &lt;outputDirectory&gt;lib&lt;/<wbr>outputDirectory&gt;<br class="m_-4039868952763534464gmail_msg">      &lt;includes&gt;<br class="m_-4039868952763534464gmail_msg">        &lt;include&gt;org.gvsig:org.gvsig.<wbr>trivialidentitymanagement.lib.<wbr>api&lt;/include&gt;<br class="m_-4039868952763534464gmail_msg">        &lt;include&gt;org.gvsig:org.gvsig.<wbr>trivialidentitymanagement.lib.<wbr>impl&lt;/include&gt;<br class="m_-4039868952763534464gmail_msg">      &lt;/includes&gt;<br class="m_-4039868952763534464gmail_msg">    &lt;/dependencySet&gt;<br class="m_-4039868952763534464gmail_msg">  &lt;/dependencySets&gt;<br class="m_-4039868952763534464gmail_msg">  ...<br class="m_-4039868952763534464gmail_msg">  <br class="m_-4039868952763534464gmail_msg">  Deberas añadir una linea con el tag include. En ella se especifica que artefacto<br class="m_-4039868952763534464gmail_msg">  te quieres llevar en la distribucion de tu plugin, indicando el groupid, dos <br class="m_-4039868952763534464gmail_msg">  puntos &quot;:&quot; y el artifactid. Si quieres llevarte detras el jar de postgresql seria<br class="m_-4039868952763534464gmail_msg">  algo como:<br class="m_-4039868952763534464gmail_msg">  <br class="m_-4039868952763534464gmail_msg">      &lt;includes&gt;<br class="m_-4039868952763534464gmail_msg">        &lt;include&gt;org.gvsig:org.gvsig.<wbr>trivialidentitymanagement.lib.<wbr>api&lt;/include&gt;<br class="m_-4039868952763534464gmail_msg">        &lt;include&gt;org.gvsig:org.gvsig.<wbr>trivialidentitymanagement.lib.<wbr>impl&lt;/include&gt;<br class="m_-4039868952763534464gmail_msg">        &lt;include&gt;postgresql:<wbr>postgresql&lt;/include&gt;<br class="m_-4039868952763534464gmail_msg">      &lt;/includes&gt;<br class="m_-4039868952763534464gmail_msg">  <br class="m_-4039868952763534464gmail_msg">  (para el jar de postgresql el groupid y el artifactid son iguales)<br class="m_-4039868952763534464gmail_msg">  Esto hara que en la carpeta de tu plugin se despliegue el jar de postgresql y <br class="m_-4039868952763534464gmail_msg">  no dependeras de que este instalado el plugin de gvSIG <br class="m_-4039868952763534464gmail_msg">  &quot;org.gvsig.postgresql.app.<wbr>mainplugin&quot; para acceder a postgresql.<br class="m_-4039868952763534464gmail_msg">  <br class="m_-4039868952763534464gmail_msg">  Es importante que sigas incluyendo las dependencias en el pom (como minimo<br class="m_-4039868952763534464gmail_msg">  de runtime, ya que aunque lo añadas en el assembly, si no esta en el pom el<br class="m_-4039868952763534464gmail_msg">  assemble no la incluira).<br class="m_-4039868952763534464gmail_msg"><br class="m_-4039868952763534464gmail_msg">Espero que se entienda y resuelba tus dudas, y si no te queda claro, puedes preguntar<br class="m_-4039868952763534464gmail_msg">de nuevo.<br class="m_-4039868952763534464gmail_msg"><br class="m_-4039868952763534464gmail_msg">Un saludo<br class="m_-4039868952763534464gmail_msg">Joaquin<br class="m_-4039868952763534464gmail_msg"><br class="m_-4039868952763534464gmail_msg"><br class="m_-4039868952763534464gmail_msg">  <br class="m_-4039868952763534464gmail_msg"> </div><blockquote style="margin-top:0px;margin-bottom:0px" class="gmail_quote m_-4039868952763534464gmail_msg"><div dir="ltr" class="m_-4039868952763534464gmail_msg"><div class="m_-4039868952763534464gmail_msg"></div><div class="m_-4039868952763534464gmail_msg"></div></div>
<br class="m_-4039868952763534464gmail_msg">______________________________<wbr>_________________<br class="m_-4039868952763534464gmail_msg">
gvSIG_desarrolladores mailing list<br class="m_-4039868952763534464gmail_msg">
<a href="mailto:gvSIG_desarrolladores@listserv.gva.es" class="m_-4039868952763534464gmail_msg" target="_blank">gvSIG_desarrolladores@<wbr>listserv.gva.es</a><br class="m_-4039868952763534464gmail_msg">
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección: <a rel="noreferrer" href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores" class="m_-4039868952763534464gmail_msg" target="_blank">https://listserv.gva.es/cgi-<wbr>bin/mailman/listinfo/gvsig_<wbr>desarrolladores</a><br class="m_-4039868952763534464gmail_msg">
<br class="m_-4039868952763534464gmail_msg"></blockquote></div><br class="m_-4039868952763534464gmail_msg"><br class="m_-4039868952763534464gmail_msg" clear="all"><br class="m_-4039868952763534464gmail_msg">-- <br class="m_-4039868952763534464gmail_msg"><div class="m_-4039868952763534464m_-175825688000655557gmail_signature m_-4039868952763534464gmail_msg">------------------------------<wbr>--------<br class="m_-4039868952763534464gmail_msg">Joaquin Jose del Cerro Murciano<br class="m_-4039868952763534464gmail_msg">Development and software arquitecture manager at gvSIG Team<br class="m_-4039868952763534464gmail_msg"><a href="mailto:jjdelcerro@gvsig.com" class="m_-4039868952763534464gmail_msg" target="_blank">jjdelcerro@gvsig.com</a><br class="m_-4039868952763534464gmail_msg"><a href="mailto:jjdelcerro@gvsig.org" class="m_-4039868952763534464gmail_msg" target="_blank">jjdelcerro@gvsig.org</a><br class="m_-4039868952763534464gmail_msg">gvSIG Association<br class="m_-4039868952763534464gmail_msg"><a href="http://www.gvsig.com" class="m_-4039868952763534464gmail_msg" target="_blank">www.gvsig.com</a><br class="m_-4039868952763534464gmail_msg"><a href="http://www.gvsig.org" class="m_-4039868952763534464gmail_msg" target="_blank">www.gvsig.org</a></div>
</div></div>
______________________________<wbr>_________________<br class="m_-4039868952763534464gmail_msg">
gvSIG_desarrolladores mailing list<br class="m_-4039868952763534464gmail_msg">
<a href="mailto:gvSIG_desarrolladores@listserv.gva.es" class="m_-4039868952763534464gmail_msg" target="_blank">gvSIG_desarrolladores@<wbr>listserv.gva.es</a><br class="m_-4039868952763534464gmail_msg">
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección: <a href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores" rel="noreferrer" class="m_-4039868952763534464gmail_msg" target="_blank">https://listserv.gva.es/cgi-<wbr>bin/mailman/listinfo/gvsig_<wbr>desarrolladores</a><br class="m_-4039868952763534464gmail_msg">
</blockquote></div>
</div></div><br>______________________________<wbr>_________________<br>
gvSIG_desarrolladores mailing list<br>
<a href="mailto:gvSIG_desarrolladores@listserv.gva.es">gvSIG_desarrolladores@<wbr>listserv.gva.es</a><br>
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección: <a href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores" rel="noreferrer" target="_blank">https://listserv.gva.es/cgi-<wbr>bin/mailman/listinfo/gvsig_<wbr>desarrolladores</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">--------------------------------------<br>Joaquin Jose del Cerro Murciano<br>Development and software arquitecture manager at gvSIG Team<br><a href="mailto:jjdelcerro@gvsig.com" target="_blank">jjdelcerro@gvsig.com</a><br><a href="mailto:jjdelcerro@gvsig.org" target="_blank">jjdelcerro@gvsig.org</a><br>gvSIG Association<br><a href="http://www.gvsig.com" target="_blank">www.gvsig.com</a><br><a href="http://www.gvsig.org" target="_blank">www.gvsig.org</a></div>
</div></div>