19 de noviembre de 2015
Buscar contenidos en un archivo (grep)
grep [opciones] [expresión regular] [archivo]
-b Muestea el numero de veces que esta en el principio de cada linea .
-c Muestra el numero de linea coincidentes
-h Visualiza el las lineas coincidentes pero no muestra los archivos .
-i Busca tanto en mayusculas como en minusculas .
-l Muestra el nombre del archivo pero no muestra las lineas .
-n Visualiza numero de lineas que son iguales y el numero de linea.
-s Modo silencionso.
-v Muestra la lineas NO coincidentes.
-w Solo palabras completas .
$>grep -c hola *-doc -> busca en la ruta donde esta todos los archivos doc que esta en la carpeta
18 de noviembre de 2015
Buscar secuencas en la base de datos
select * from all_sequences
where
--sequence_owner='RRRRR' and
sequence_name like upper('%ZZZZZZZ%')
order by sequence_owner, sequence_name ;
17 de septiembre de 2015
valor de la etiquetas xml
public void leerXMLNodesInner(Document original,Node currentNode, String path,List laplanado){
String newPath = path + currentNode.getNodeName();
if (!currentNode.getNodeName().equals("#document")){
String finalPath = newPath;
try {
Node foundNode = (Node)xpath.evaluate(finalPath+"/text()", original, XPathConstants.NODE);
String paths = finalPath;
if (foundNode!=null){
if (foundNode.getNodeType() == Element.TEXT_NODE){
String value = foundNode.getNodeValue().trim();
}
}else{
System.out.println("path "+paths +" value null");
}
} catch (XPathExpressionException e) {
private static void leerXMLNodes(Document original){
leerXMLNodesInner(original,original.getFirstChild(), "/");
}
System.out.println("Error xPath expersion "+e.getMessage());
} catch (DOMException e) {
System.out.println("Error DOME expersion "+e.getMessage());
}
> NodeList listaHijos = currentNode.getChildNodes();
if(listaHijos != null){
for(int i = 0; i < listaHijos.getLength(); i++){
Node currentChild = listaHijos.item(i);
if(currentChild.getNodeType() != Node.TEXT_NODE && currentChild.getNodeType() != Node.COMMENT_NODE){
leerXMLNodesInner(original,currentChild, newPath+"/");
}
}
}
}else{
System.out.println("Fin del fichero");
}
}
para saber el valor que tiene la etiqueta utilizamosNode foundNode = (Node)xpath.evaluate(finalPath+"/text()", original, XPathConstants.NODE);
preguntamos por el tipo y el nodo
if (foundNode.getNodeType() == Element.TEXT_NODE){
cogemos el valor de la etiqueta
String value = foundNode.getNodeValue().trim();
15 de septiembre de 2015
buscar contenido en archivos
Con el programa Notepad++ hay una opción para buscar contenido en archivos
buscar -> encontrar en archivos. ( control + sift + F )
seleccionamos donde están los archivos donde queremos buscar y la palabra que se quiera buscar
y te saca un listado de los elementos encontrados y en que archivo se ha encontrado
8 de septiembre de 2015
grep buscar contenidos en archivos
buscar "palabra" en todos los archivos en txt
grep "palabra" /home/miusuario/documentos/*.txt
buscar "palabra" y "palabra_2" en todos los archivos de esa ruta
grep -r -e "palabra" -e "palabra_2" /home/miusuario/documentos/
26 de agosto de 2015
modo dios en Windows 10. 8.1, 8, 7
Lo que en español se llama "modo dios" en windows que exisitía desde la versión 7 de windows.
Es tan simple como crear una carpeta por ejemplo en el escritorio y renombrarla con este nombre
ModoDios.{ED7BA470-8E54-465E-825C-99712043E01C}
se cambiara de icono y te permite tener todas las opciones de windows en una sola pantalla sin tener que ir buscándolo en diferentes menus
4 de agosto de 2015
error en log4j
Si en algún momento sale un error de este tipo de log4j
log4j:ERROR Could not find value for key log4j.appender.INFO
log4j:ERROR Could not instantiate appender named "INFO".
es porque INFO lo has puesto como si fuera un paramentro definido en el log4j.properties
esto no seria correcto
log4j.rootLogger=ERROR, CONSOLE, INFO
lo correcto seria
log4j.rootLogger=INFO, CONSOLE,
maven sin hacer test
bajar las librerias en maven y generar el jar sin hacer test
mvn -Dmaven.test.skip=true clean install
27 de julio de 2015
maven bajarse paquetes de libreria
Una forma para bajarse los jars y las dependecias de ellos nada mas hay un comando que se debe de utlilizar estos comoandaso
mvn initialize -P dependencies
10 de julio de 2015
Atajos de eclipse para programar mas rapido
Atajos iniciales
CTRL + H Carga la ventana de búsqueda
CTRL + E Acceso a los ficheros que ya están abiertos
CTRL + O Acceso a los atributos y métodos de esa clase
CTRL + O (2 veces) Igual que el anterior pero añadiendo los atributos y métodos de las clases padre
CTRL + L Acceso a la línea indicada
CTRL + K Rastrea la variable seleccionada
CTRL + F Buscar / Reemplazar una palabra
CTRL + D Eliminar la fila
CTRL + SUPR Eliminar la siguiente palabra
CTRL + RETRO Eliminar la anterior palabra
CTRL + MAY + SUPR Eliminar hasta el final
CTRL + Q Volver a la anterior pestaña de edición
CTRL + 3 Cargador de vistas
CTRL + MAY + F Formatea el texto según lo configurado
CTRL + MAY + S Guarda todos los documentos abiertos
CTRL + MAY + O Organizador de imports (añadiéndolos si faltan)
CTRL + MAY + T Buscador de tipos en el workspace
CTRL + MAY + R Acceso a la búsqueda de recursos
CTRL + 7 Comenta el texto seleccionado
Atajos Expertos
CTRL + SHIFT + X Cambiar el texto a mayuscula Seleccionar el texto a pasar a mayúscula y pulsar
CTRL + SHIFT + Y Cambiar el texto a minúscula Seleccionar el texto a pasar a mayúscula y pulsar
CTRL + SHIFT + G Buscar todas las clases en el que método está siendo utilizado. Selecionamos el método y presionamos
CTRL + N Crear rápido una clase, interface ,etc. Presionamos la teclas
ALT + ENTER Ver las propiedades de una clase o proyecto. Primero se debe seleccionar y luego presionar
F3 Sobre el método o la clase entramos donde se encuentra implementado.
CTRL+ SHIFT + FLECHA ABAJO: Posiciona el cursor en el método o propiedad siguiente al que estamos actualmente.
CTRL+ SHIFT + FLECHA ARRIBA: Posiciona el cursor en el método o propiedad anterior al que estamos actualmente.
Algunos atajos mas
Crear metodo main Escribir main,pulsar CTRL + ESPACIO y seleccionar main method Implementa : public static void main (String[] args){ }
Impresion rápida por consola Escribir syso y pulsar CTRL + ESPACIO Implementa : System.out.println();
Sentencia IF Escribir if,pulsar CTRL + ESPACIO y seleccionar la opción statement Implementa : if (condition) {} o con la opción else
Bucle DESDE (for) Escribir for,pulsar CTRL + ESPACIO y seleccionar la opción Implementa : for (int i = 0; i < array.length; i++) {} u otras opciones
Bucle MIENTRAS (while) Escribir while,pulsar CTRL + ESPACIO y seleccionar la opción Implementa : while (condition) {} u otras opciones
Bucle REPETIR HASTA (do..while) Escribir do,pulsar CTRL + ESPACIO y seleccionar la opción Implementa : do {}
Referencias
eclipse atajos de teclado
9 de julio de 2015
Office 365 config gestor de correos
Office 365 Small Business:
POP setting
SMTP setting
24 de junio de 2015
Configuracion JMS (Weblogic - java con spring)
abria que tener corriendo el welogic y poner en el navegador
http://localhost:7001/console/
creacion un cluster con el weblogic
Entornos-> cluster
pulsamos boton nuevo.
se introduce un nombre del cluster
pulsamos boton de aceptar.
creacion un servidores con el weblogic
Entornos-> Servidores
boton nuevo.
se introduce un nombre del cluster
el puerto del servidores
seleccionamos "Si hacer este servidor sea miembre de un cluster existente"
selecionamos el cluster que hemos relacionado
pulsamos boton siguinte.
pulsamos boton Terminar.
Para la configuracion de JMS
primero empezare para la configuracion en el welogic
Servicios->Mensajes->Servidores JMS,
se pulsa a nuevo
se introduce un nombre del JMS
pulsamos boton siguinte.
seleccionamos destino
pulsamos boton Terminar.
Para poner el nombre JNDI para la cosas JMS
Servicions -> mensajes -> modulos JMS
si no hay ningun modulo se crea uno nuevo. y se hace de esta manera
se pulsa a nuevo
se introduce un nombre del sistema de JMS
pulsamos boton siguinte.
seleccionamos el cluster donde tengamos nuestro servidores.
pulsamos boton siguinte.
No seleccionamos nada y pulsamos boton Terminar.
cuando ya tienes creado un sistema jms
volvemos a Servicions -> mensajes -> modulos JMS
se pulsa a nuevo
como queremos crear una cola seleccionamos "Cola"
pulsamos boton siguinte.
introducimos un nombre y tambien el nombre JNDI
pulsamos boton Terminar.
Luego habria que configurar la parte spring. Esta claro que en la parte java habria que tener unos minimos para ahora no voy a ponerme a explica como es la creacion del un proyecto web con spring(pero podria ser otro punto muy bueno para el log). y que cada proyecto tiene su configuracion y que no todos son iguales he intentado extrapolar esos problemas dando importancia a la configuracion propia de jms
Teniendo en cuento lo anterior voy a dar pequeñas pinceladas a la configuracion , o lo
que yo he tenido que hacer para implementar las colas jms en mi proyecto. Espero que esto
tambien sirva
en mi ficher de configuracion en mi caso es kernel.properties.xml
tengo unas etiquetas para la configuracion y el arquivo que debe de cargar para empezar
<JMSManagerImpl>
<ctx>jms.sender.context.test.xml</ctx> //nombre del fichero
<JMSMessageTypeTest>weblogicCola</JMSMessageTypeTest> //nombre de la propiedad
</JMSManagerImpl>
el fichero que voy a configurar ahora mismo es jms.sender.context.test.xmlcomo estamos usando spring debemos de tenere
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:amq="http://activemq.apache.org/schema/core" xmlns:jms="http://www.springframework.org/schema/jms"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://activemq.apache.org/schema/core
http://activemq.apache.org/schema/core/activemq-core-5.5.0.xsd
http://www.springframework.org/schema/jms
http://www.springframework.org/schema/jms/spring-jms-3.0.xsd">
<context:annotation-config />
y terminar con la etiqueta </beans> <bean id="weblogicCola" class="isf.domain.gcjms.DefaultProductorImpl">
<property name="template">
<ref bean="weblogicJmsTemplate" />
</property>
<property name="destination" ref="colaTEST"/>
</bean>
<bean id="weblogicJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<ref bean="weblogicConnectionFactory" />
</property>
<property name="destinationResolver">
<ref bean="weblogicDestinationResolver" />
</property>
</bean>
<bean id="colaTEST" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jms/micola" /> //nombre JNDI
<property name="jndiTemplate" ref="weblogicJndiTemplate" />
</bean>
<bean id="weblogicJndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
<prop key="java.naming.provider.url">t3://localhost:7010,localhost:7011,localhost:7012</prop>
</props>
</property>
</bean>
el fichero que voy a configurar ahora mismo es jms.listener.context.test.xml
como estamos usando spring debemos de tenere
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:amq="http://activemq.apache.org/schema/core" xmlns:jms="http://www.springframework.org/schema/jms"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://activemq.apache.org/schema/core
http://activemq.apache.org/schema/core/activemq-core-5.5.0.xsd
http://www.springframework.org/schema/jms
http://www.springframework.org/schema/jms/spring-jms-3.0.xsd">
<context:annotation-config />
y terminar con la etiqueta </beans>
<bean id="weblogicJndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
<prop key="java.naming.provider.url">t3://localhost:7010,localhost:7011,localhost:7012
</prop>
</props>
</property>
</bean>
<bean id="weblogicDestinationResolver"
class="org.springframework.jms.support.destination.JndiDestinationResolver">
<property name="jndiTemplate">
<ref bean="weblogicJndiTemplate" />
</property>
<property name="cache">
<value>true</value>
</property>
</bean>
<bean id="weblogicConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate">
<ref bean="weblogicJndiTemplate" />
</property>
<property name="jndiName"> // nombre que tiene las colas JMS por defectgo
<value>weblogic/jms/ConnectionFactory</value>
</property>
</bean>
<bean id="weblogicJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<ref bean="weblogicConnectionFactory" />
</property>
<property name="destinationResolver">
<ref bean="weblogicDestinationResolver" />
</property>
</bean>
<jms:listener-container container-type="default" connection-factory="weblogicConnectionFactory" acknowledge="transacted" concurrency="10" destination-resolver="weblogicDestinationResolver">
<jms:listener id="listener" destination="jms/micola" ref="testMessageListener" method="onMessage" />
</jms:listener-container>
<bean id="testMessageListener" class="isf.domain.gcjms.JMSSessionAwareMessageListenerImpl">
<property name="consumerAsyncronous">
<bean class="isf.domain.gccmq.core.listener.ConsumerWLSTest"></bean> //nombre y paquete de la clase lisener
</property>
</bean>
</beans>
y en la parte de java
he crrado una clase main para probarlo
public class JMSManualTest {
public static void main(String[] args) throws IOException {
System.out.println("Arrancando Spring Context...");
//levanto el contexto de spring para que la parte de lisener este activa cuando yo mando.
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:jms.listener.context.test.xml");
System.out.println("Spring Context OK");
do{
System.out.println("Mensaje a enviar:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String mensaje = "";
boolean finComando = false;
while(!finComando){
String line = br.readLine();
if(line.endsWith(";")){
if(line.length() > 1){
mensaje += line.substring(0, line.length()-1);
}
finComando = true;
}else{
mensaje += line;
}
}
System.out.println("Enviando mensaje...");
sendJMSMessage(mensaje);
System.out.println("Mensaje enviado");
}while(true);
}
public static void sendJMSMessage(String message){
JMSMessage mensaje = new JMSMessage(message, "");
mensaje.setJmsMessageType("JMSMessageTypeTest");
mensaje.setJmsPriority(1);
//Especifica la fecha de expiraci�n del mensaje
mensaje.setJmsExpiration(3000);
//Identificador de correlaci�n, usado para asociar un mensaje con otro mensaje
//mensaje.setJmsCorrelationId(Long.toString(System.currentTimeMillis()));
//Permite uno de los dos modos de entrega permitidos,persistente o no persistente
mensaje.setJmsDeliveryMode(1);
//Usado para identificar la prioridad del mensaje
mensaje.setJmsPriority(1);
//Propiedades del mensaje
// Properties prueba = new Properties();
// prueba.put("Rango", 7);
// mensaje.setJmsProperties(prueba);
//Indica si un mensaje ha sido entregado
mensaje.setJmsRedelivered(true);
try {
JMSFactory.getInstance().producer(mensaje);
} catch (JMSInvalidDefinitionBeanException e) {
e.printStackTrace();
} catch (JMSMessageWrapperException e) {
e.printStackTrace();
} catch (Exception e){
e.printStackTrace();
}
}
en la parte de recivir
public class ConsumerWLSTest implements IConsumerAsynchronous {
@Override
public JMSMessage onMessageJms(JMSMessage _jmsmessage) {
return onMessageJms(_jmsmessage, null);
}
@Override
public JMSMessage onMessageJms(JMSMessage _jmsmessage, Session _session) {
try{
System.out.println("Mensaje Recibido: [" + _jmsmessage.getJmsBody() + "]");
return null;
}finally{
try {
_session.commit();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
18 de junio de 2015
an error occurred while filtering resources maven configuration problem
Si sales este error en el eclipse
"an error occurred while filtering resources maven configuration problem"
la forma de arregarlo es Boton secundario encima del proyecto Maven -> Update Proyect
21 de mayo de 2015
Contar celdas no numéricas en excel
para contar las celdas del excel que tienen un numericas
=CONTAR(Tabla3[nombreColumna])
11 de mayo de 2015
funciones de contar en excel
para contar cuantas unidades se tiene de un tipo de celda
=CONTAR.SI(Tabla3[Estado];cerrado) -> cuenta cuantas celdas tienen la palabra cerrado
=CONTAR.BLANCO(Tabla3[Estado]) .> cuenta la celdas de tu columna estados las que estén vacíos
=CONTAR.SI(Tabla3[Estado];*) -> cuenta las celdas que tengan algún texto
30 de abril de 2015
Cargar properties en java
Se crea primero un archivo de propiedades dentro del src
por ejemplo
src/es/properties/test.propertiesescribo en el fichero test.properies
testPropoerties=2;desde la parte java debo de primero cargar el fichero de properties
java.io.InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("/es/properties/test.properties");
se comprueba que se ha cargado cerrectamente
if (inputStream == null) {
throw new Exception("No se encuentra el fichero de propiedades: test.properties");
}
cargamos lo que hemos leido al fichero properties
private Properties prop = new Properties();
prop.load(inputStream);
para ver si esta bien cargado
Systen,out.println("properties "+prop.getProperty("testPropoerties"));
27 de abril de 2015
llamada a procedimientos sql desde java
para llamar desde java a procedimientos sql, este seria el codigo.
java.sql.Connection connection //hay que crearse una funcion
java.sql.PreparedStatement ps ps=connection.prepareCall("CALL NOMBRE_PAQUETE.NOMBRE_PROCEDIMIENTO('TMP')");
ps.execute();
instalacion del Galssfish 2.1
La version de glassfish 2.1 es porque es la version 6 de java.
“java -Xmx256m -jar filename.jar”En este momento se ejecuta la instalación de Glassfish 2.1. En la siguiente ventana leemos las condiciones de uso y pulsamos Accept
Si los puertos 8080 los tienes ocupados debes de modificar los ficheros de setup y de setup-cluster
“lib\ant\bin\ant -f setup.xml”“lib\ant\bin\ant -f setup-cluster.xml”Glassfish\bin, ejecutamos el comando
“asadmin start-domain domain1”.Una vez iniciado el servidor, podemos acceder a la consola a través del navegador, concretamente a través del puerto por defecto
4848.en el navegador
localhost:4848setup.xml, el user por defecto era “admin” y el password “adminadmin”.
ya estaria la instalacion hecha
esta información lo saque de esta pagina
https://glassfish.dev.java.net/downloads/v2.1-b60e.htmldonde tambien puedes encontrar glassfish de versiones antiguos
SVN KIT comparar entre dos revisiones
SVNKIT son unas librerias para poder realizar commit o rolback desde java. Estas librerias no tienes un java doc muy bueno por ese motivo. quiero compartir como se puede sacar toda la informacion de dos revisiones.
Esta funciona newInstance de la clase SVNClientManager. devuelve una lista de revisiones y por lo tanto una lista de los cambios que se han producido.
el objeto que devuelve arg0 tiene toda la información de la revision , numero, cambios y mensaje del commit.
SVNClientManager.newInstance(new DefaultSVNOptions(), "lectura", "lectura").getLogClient().doLog(
SVNURL.parseURIEncoded(rama.getUrlv()+"/"+vIncio),//URL
null,//path
SVNRevision.HEAD,//pagRevision
SVNRevision.create(referencia),//starRevision
SVNRevision.HEAD,//endRevision
false,//stop on copi
false,//div change
50L,//log limiet
new org.tmatesoft.svn.core.ISVNLogEntryHandler(){//handler
public void handleLogEntry(SVNLogEntry arg0)
throws SVNException {
//System.out.println(arg0.getRevision());
}
});
6 de enero de 2015
Compraracion entre String
String s ="";
String s1 = new String("");
para comprar s == s1 -> false
metodo .intern()
String s ="";
String s1 = new String("").intern();
para comprar s == s1 -> true
esto es porque s es una dirección de memoria a ese string
s1 crea un objero y wrappea el valor de la cache internamente en ese objeto
este valor lo guarda internamente y eso es lo que devuelve intern
String s = new String("");
String s1 = new String("");
para comprar s == s1 -> false
s.equals(s1) -> true
Unable to locate an executable at "/usr/bin/java/bin/java" (-1)
debe de abrir la cosnsola
y teclee
$> export JAVA_HOME=/Library/Java/Home
y vuelve el problema
java -version
Suscribirse a:
Entradas (Atom)