Archive for the ‘en-US’ Category
Get the list of tables in Oracle
Case: you need the list of all tables in an Oracle DB.
Solution: run this query:
[sql]select * from user_objects where object_type = ‘TABLE’;[/sql]
You can use a similar way to filter on table names, or get other types object such us triggers, procedures and indexes.
Deploy a JMS destination queue with Spring
Abstract
Case: we have to send JMS messages to a third-party server, using Spring. Of course, we have to discriminate production, UAT and developments environments. We can decide to use one Spring configuration file per environment, but it is complex to maintain.
Here is the way I proceded:
Declare the factory
[xml]<bean id="myJmsQueueConnectionFactory">
<property name="jndiName" value="my.jms.QueueConnectionFactory"/>
<property name="jndiTemplate" ref="myJmsJndiTemplate"/>
</bean>[/xml]
Declare a Jndi Template
[xml]<bean id="myJmsJndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
<prop key="java.naming.provider.url"><strong>${my.jms.host}</strong></prop>
</props>
</property>
</bean>[/xml]
The variable ${my.jms.host} is used to indicate the actual destination host. The value is given in a property file myConfig.properties, for instance:
my.jms.host=t3://127.0.0.1:1234
Obviously, each environnement needs its ad hoc property file!
Declare a JMS Template
It gathers the factory and the queue name.
[xml]<bean id="myJmsTemplate">
<property name="connectionFactory" ref="myJmsQueueConnectionFactory"/>
<property name="defaultDestination" ref="myJmsQueue"/>
</bean>[/xml]
Declare the destination queue
[xml]<bean id="myJmsQueue">
<property name="jndiName" value="my.jms.destination.queue.name"/>
</bean>[/xml]
Ensure the property file is in classpath
[xml]<bean id="conf">
<property name="locations">
<list>
<value>classpath*:myConfig.properties</value>
</list>
</property>
</bean>[/xml]
Restart WebLogic, deploy your EAR. Now it should work!
Notice: in case you’re not sure the distant host is up or not, you may add this attribute to your beans: lazy-init="true"
weblogic.jms.common.MessageFormatException: JMSClientExceptions: Invalid property name, “my-personnal-id”
Error:
weblogic.jms.common.MessageFormatException: JMSClientExceptions: Invalid property name, "my-personnal-id"
Fix:
Rename the property as myPersonalId for instance. Indeed, owing to JMS specification, properties on JMS messages must be written in alphanumeric characters. Therefore, hyphen '-' and periods '.' are forbidden.
IDEA: “Debug info unavailable”
Error: IntelliJ IDEA does not allow to see the values of local variables. The error message displayed is: Debug info unavailable.
Fix:
- open the settings
- open
Compilertab - check
Generate debugging info
java.lang.ClassNotFoundException: net.sf.cglib.transform.impl.InterceptFieldEnabled
Error:
java.lang.ClassNotFoundException: net.sf.cglib.transform.impl.InterceptFieldEnabled at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
Fix: add cgilib-nodep.jar to your classpath.
LDIFReader: modify record not ends with ‘-‘ in the record starting on line
Error:
Error: LDAPLocalException: com.novell.ldap.ldif_dsml.LDIFReader: modify record not ends with '-' in the record starting on line 38 of the file. (82) Local Error
Fix:
- go to the line hinted in the error (here:
38) - get the block of the entry which is modified, for instance:
dn: cn=foo,ou=OUfoos,ou=Groups, dc=DCfoos
changetype: modify
add: uniqueMember
uniqueMember: cn=myFoo, ou=OUfoos, ou=Groups, dc=DCfoos
- then add a character
'-'at the end of this block, you get:
dn: cn=foo,ou=OUfoos,ou=Groups, dc=DCfoos
changetype: modify
add: uniqueMember
uniqueMember: cn=myFoo, ou=OUfoos, ou=Groups, dc=DCfoos
-
com.novell.ldap.ldif_dsml.LDIFReader: Version line must be the first meaningful line
Error:
LDAPLocalException: com.novell.ldap.ldif_dsml.LDIFReader: Version line must be the first meaningful line(on line 1 of the file) (82) Local Error
Fix: add this line at the bottom of your Ldif file:
version: 1
DiskDigger
Catastrophe! J’ai efface mon rapport de stage de ma clef USB! Je suis fichu, ma soutenance c’est demain matin a 5h!
Mais non, tout n’est pas perdu.
DiskDigger est un logiciel freeware qui permet de recuperer des fichiers effaces, volontairement ou non, sous Windows. En effet, contrairement a Unix, la suppression d’un fichier sous Windows n’efface pas physiquement le fichier de la surface du disque, mais se contente de retirer son adresse logique sur la table de partition.
DiskDigger propose de scanner un disque physique ou logique, NTFS ou FAT, les memoire flash et meme les clefs USB… Tres pratique pour quiconque a deja perdu des photos de vacances lors d’une mauvaise manipulation.
DiskDigger est disponible a ce lien. DiskDigger a ete cree par Dmitry Brant.
net/sf/ezmorph/Morpher
Error:
nested exception is java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:899) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:793) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441)
Fix: add ezmorph.jar to your classpath.
net.sf.cglib.transform.impl.InterceptFieldEnabled
Error:
java.lang.ClassNotFoundException: net.sf.cglib.transform.impl.InterceptFieldEnabled at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
Fix: add ehcache.jar in your classpath.