Tired of not being able to delete a file or folder because something is locking it? Want to move a folder but for some reason you can’t? Did you close down an application and for some reason you still can’t delete/move/rename files it was using? Do you miss your Unix box? Well LockHunter is the application for you!
It works as an application or via the context menu to tell you which processes are locking files that are preventing you from being happy. You can explicitly remove the locks owned by the application or delete the file which would be really handy for trying to clean up a machine infected with malware.
I gave it a go and it was pretty good.
http://www.lockhunter.com/
I’ve just had a bit of an “oh shit” moment! So thought I’d blog how I got out of it.
Parallels is the company that produces Plesk. On the whole it’s a pretty good bit of server software which helps to manage a single machine that supports many virtual hosts without using virtualisation. It uses the idea of Customers, Subscriptions, Clients and Domains in order to allow the owner to basically sub-let their server to other resellers. The main criticism is that its update cycle is unpredictable and really slow. They tend to upgrade the integral software as new (chargeable) major version releases with no upgrade path. It’s fine for them but business moves a bit quicker than they do. We need new versions of PHP and MySQL a bit quicker because the latest application software often relies on them.
I wanted to install the latest Lime Survey but couldn’t so I had to upgrade the whole server from Plesk 9 to Plesk 10 and transfer all the domains with their set up over to the new appliance. Not a particularly nice job!
A month ago I was updating the mysql client libraries with yum and it updated the Plesk’s PHP as a dependency. The update took PHP from version 5.0.2 to 5.3. I had been wanting to update PHP for a while because the version that came with Plesk was too old for most of the applications I wanted to upgrade to. I was holding back because I couldn’t find enough information on what effect a newer version of PHP would have on the Plesk system software and interfaces; needless the say the Plesk website and forums were useless as usual. I don’t have a development machine to play with so I wanted to be sure before attempting anything. Anyway the surprise upgrade seemed to have worked, but when I tried to install the Plesk 10.3 maintenance upgrade things went a bit pear shaped.
Plesk updates are usually pretty reliable. I say pretty reliable; there are always problems but nothing I can’t fix, or fix, or fix, or fix, or fix, or fix, or fix.
This time was a little different though. The maintenance release failed half way through with the message:
===> Installing /usr/sbin/suexec replacement Trying to backup original /usr/sbin/suexec… done `/usr/local/psa/suexec/psa-suexec’ -> `/usr/sbin/suexec’ Trying to set up APS controller database… Attempting to check APS db connection via ODBC, using /usr/bin/isql (empty output is good) [ISQL]ERROR: Could not SQLConnect Failed, rc = 1. Failed to establish test connection. Cleaning up. ERROR while trying to establish test connection to APS database via ODBC Check the error reason(see log file: /tmp/plesk_10.3.0_installation.log), fix and try again ***** problem report ***** ERROR while trying to establish test connection to APS database via ODBC Check the error reason(see log file: /tmp/plesk_10.3.0_installation.log), fix and try again Execute command rm -f /tmp/pp-bootstrapper-mode.flag Execute command rm -f /var/lock/parallels-panel-maintenance-mode.flag Execute command touch /var/lock/parallels-panel-upgrade-failure.flag Execute command /usr/sbin/getenforce Disabled Error: An error occurred during performing of installation POST actions (see log for details). Warning! Not all packages were installed. Please check if your system services are operable. Please resolve this issue and try installing the packages again. If you cannot resolve the issue on your own, contact product technical support for assistance.All my virtual domains were gone! Check the psa database and the configuration was still in-tacked - phew!!! Going to each web address just displayed the default Apache starting page. Checked the logs and they were full of 404 errors. Did an strace to watch which configuration files where being read and none of them were. Rebuilding Plesk’s virtual domain’s specific conf files would have been a nightmare. Plesk used to just Include the conf file from each virtual domain’s conf folder but now it’s all about the generation of the file i.e. all the files have names like
13099743180.74277400_httpd.include
, so it’s a lot more complicated!
I needed a way of rebuilding all of Plesk’s Apache configuration to include the httpd.conf
files specific to each domain. Did a bit of trawling and came up with this which did the trick.
/usr/local/psa/admin/sbin/httpdmng −−reconfigure−allThank you Server God! Logged into the the Plesk administration via the web interface and it shows the version is still 10.2 (instead of 10.3). I feel like I’ve had a narrow escape so I’m not going to do any more upgrades until the next major release - where I’ll have to update the server :( but at least it will be clean. Thanks to PleskGUY for the knowledge base article on Parallels web site. The article says that in order for the patch to work you must be able to access the database via the localhost IP address:
mysql -h 127.0.0.1 -P 3306 -uadmin -p`cat /etc/psa/.psa.shadow`I checked my
my.cnf
and I had set bind-address=<my-external-ipaddress>
in order to do a server update. I can understand why it wasn’t picking up 127.0.0.1
but strangely when I substituted the -h
address for localhost
it worked. Pinging localhost
showed it resolved to 127.0.0.1
. I think this is one of those pain in the ass permission peculiarities from MySQL’s grant/revote access control system.
I removed the bind-address
from /etc/my.cnf
and restarted mysqld with:
/etc/init.d/mysqld restartRerun the patch update and it… (doing out-of-hours) Problem 2: I found that the FTP password to one of the sites had been cancelled. I logged back into the Plesk interface and changed it back to what it was and it seemed to take it without complaining. Problem 3: (5 August 2011) It looks like the AWStats is screwed again. I was checking my stats and found there is a big gap in the monthly reports and they are out of order again: 2010-01, 2010-02, 2010-03, 2010-04, 2010-05, 2010-06, 2010-07, 2010-08, 2011-08, 2011-07, 2011-05, 2011-06. Honestly Plesk are bloody useless. In previous versions you used to be able to tweak the number of months you kept on a per domain bases, but now it looks like there is one value per server. I logged into the control panel clicked through to Settings -< Settings of Server Statistics. Then changed the Retain web and traffic statistics for to 12 (months). I could only find that this was held in the misc table of the psa database in the record with the key stat_ttl. I couldn’t find where this links to awstats. I’ve probably have dig out my old awstat-stats-fixer program. **UPDATE** Problem 4: (16 August 2011): I wanted to edit a user’s email options through the domain’s control panel. Plesk directed me to the page https://example.com/smb/user/overview/id/<num> which threw the following error:
Internal error: Specified column “imNumber” is not in the row Message Specified column “imNumber” is not in the row File Abstract.php Line 182 Type Zend_Db_Table_Row_ExceptionThe
Abstract.php
refers to /usr/local/psa/admin/plib/Zend/Db/Table/Row/Abstract.php
which I got from the Plesk error log located at /var/log/sw-cp-server/error_log
.
To correct this problem log in to the psa
database and run the following SQL:
ALTER TABLE smb_users ADD imNumber VARCHAR(255); ALTER TABLE smb_users ADD imType INT(11); ALTER TABLE smb_users ADD isLegacyUser INT(11); ALTER TABLE smb_users ADD additionalInfo TEXT;There’s no need to restart anything it should just start working.
CentOS 5.5 is dependant on Python 2.4. Everything will break if you change it, so we must install a newer version of Python in a different place.
Surprisingly my 1&1 CentOS didn’t come with gcc installed so I had to install it myself.
yum -y install gcc gdbm-devel readline-devel ncurses-devel zlib-devel bzip2-devel sqlite-devel db4-devel openssl-devel tk-devel bluez-libs-devel makeImportant: Before you go any further please read Upgrading Plesk from PSA_10.2.0 to PSA_10.3.0 I’m going to need the MySQL development libraries so install them next:
yum -y install mysql-develThe big surprise here was that it installed PHP 5.3 as a dependency! which I was not expecting, but everything still seems to be working! Now that we have the platform set up, we’ll download all the sources we need and unpack them.
- Create a folder for us to work in:
mkdir /home/mrn/dev/python cd /home/mrn/dev/python
- Go to the Python download page:
http://www.python.org/download/releases/ - Download and uncompress:
wget http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tar.bz2 tar -xjvf Python-2.7.1.tar.bz2
- Go to the Python MySQL module page:
http://sourceforge.net/projects/mysql-python/ - Download and uncompress:
wget http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz tar -xzvf MySQL-python-1.2.3.tar.gz
- Download the Easy Installer set up:
wget http://peak.telecommunity.com/dist/ez_setup.py
- Go to Python folder:
cd Python-2.7.1
- Check there is nothing already living in
/usr/local/python27
because that is where we are going to install out copy of Python. - Run the source configuration program:
./configure –prefix=/usr/local/python27
- Start the build:
make
- Install (as root):
make install
# /usr/local/python27/bin/python Python 2.7.1 (r271:86832, Jun 2 2011, 16:02:46) [GCC x.x.x xxxxxxxxx (xxxxx x.x.x-xx)] on xxxxx Type “help", “copyright", “credits” or “license” for more information.We must add python to our
PATH
so that the next part will pick up our new python and not the old one.
# export PATH=/usr/local/python27/bin:$PATHAs a prerequisite for the Python MySQL’s module we need to install
setuptools
. There is a really handy video on ShowMeDo here on how to do it. Don’t forget to run this as root (if you installed it as root) because it will modify the Python installation directory. The import
should return without an error.
# cd .. # python ez_setup.pyTo test it, try to import setuptools.
# /usr/local/python27/bin/python Python 2.7.1 (r271:86832, Jun 2 2011, 16:02:46) [GCC x.x.x xxxxxxxxx (xxxxx x.x.x-xx)] on xxxxx Type “help", “copyright", “credits” or “license” for more information. >>> import setuptools >>>Compile the MySQL module Now that we have sorted out the Python installation go to the MySQL Python directory. The
site.py
default file doesn’t need changing so we can use it as is. There is the option to change the MySQL Python module name from _mysql
to something else but there’s not much point because every example you’ll find on the Internet has it as the default; you’ll spend the rest of your life searching and replacing! Again you’ll have to run this as root if you did earlier.
# cd MySQL-python-1.2.3 # python setup.py build # python setup.py installTo test it, try to import _mysql, it should return without an error.
# /usr/local/python27/bin/python Python 2.7.1 (r271:86832, Jun 2 2011, 16:02:46) [GCC x.x.x xxxxxxxxx (xxxxx x.x.x-xx)] on xxxxx Type “help", “copyright", “credits” or “license” for more information. >>> import setuptools >>>The first time I did this I got the following error message, but after I’d logged out and logged back in again the error message went away and I couldn’t reproduce it.
/usr/local/python27/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-linux-x86_64.egg/_mysql.py:3: UserWarning: Module _mysql was already imported from /usr/local/python27/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-linux-x86_64.egg/_mysql.pyc, but /home/djn/dev/python/MySQL-python-1.2.3 is being added to sys.pathThe unexpected upgrade of PHP from version 5.1 to 5.3 threw up the following error message on all my
.php
pages:
SYSTEM WARNING: date_default_timezone_get() [function.date-default-timezone-get]: It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Europe/London’ for ‘BST/1.0/DST’ insteadFixed it by adding the following line to
/etc/php.ini
and restarting the web server.
date.timezone = ‘Europe/London’
I have just spent the last 2 days looking for why my Spring container (under Tomcat) was getting ClassNotFoundException and NoClassDefFoundError during start up. There is so much mis-leading stuff on the Internet.
I had 2 projects in Eclipse: the core application project, that depends on, a different project containing all the hibernate and dao managers. Both projects’ JUnit tests work without any problems, but when I tried to launch the Tomcat container it failed with the following error:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ’sessionFactory’ defined in class path resource [uk/co/bigsoft/proj/database.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/usertype/UserTypeI could confirm that the
org.hibernate.usertype.UserType
was in my Web Apps Libraries folder and was accessible by my application.
I was on the verge of suicide when I found an article which provided a vital clue.
The problem is caused by classloader dependencies - that is, the scope of jar files which are accessible by the application at a particular point. This point being during the Tomcat startup (bootstrapping phase).
Although, I hit the problem with Hibernate it could happen with any User Entry jar.
For completeness here was the full exception:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [uk/co/bigsoft/sm/config/database.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/usertype/UserType at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1362) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:540) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:485) at java.security.AccessController.doPrivileged(Native Method) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:170) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:407) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:735) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:251) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:190) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Caused by: java.lang.NoClassDefFoundError: org/hibernate/usertype/UserType at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:620) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$000(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1275) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:123) at org.hibernate.type.TypeFactory.heuristicType(TypeFactory.java:246) at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:283) at org.hibernate.cfg.Configuration$1.getIdentifierType(Configuration.java:2139) at org.hibernate.type.EntityType.getIdentifierType(EntityType.java:520) at org.hibernate.type.EntityType.getIdentifierOrUniqueKeyType(EntityType.java:545) at org.hibernate.type.ManyToOneType.getColumnSpan(ManyToOneType.java:88) at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:276) at org.hibernate.mapping.ToOne.isValid(ToOne.java:105) at org.hibernate.mapping.Property.isValid(Property.java:207) at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:458) at org.hibernate.mapping.RootClass.validate(RootClass.java:215) at org.hibernate.cfg.Configuration.validate(Configuration.java:1135) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1320) at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:753) at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:691) at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1390) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1359) ... 29 more Caused by: java.lang.ClassNotFoundException: org.hibernate.usertype.UserType 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) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) ... 64 more 12-Nov-2008 12:04:56 org.apache.catalina.core.StandardContext listenerStart SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [uk/co/bigsoft/sm/config/database.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/usertype/UserType at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1362) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:540) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:485) at java.security.AccessController.doPrivileged(Native Method) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:170) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:407) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:735) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:251) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:190) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Caused by: java.lang.NoClassDefFoundError: org/hibernate/usertype/UserType at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:620) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$000(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1275) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:123) at org.hibernate.type.TypeFactory.heuristicType(TypeFactory.java:246) at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:283) at org.hibernate.cfg.Configuration$1.getIdentifierType(Configuration.java:2139) at org.hibernate.type.EntityType.getIdentifierType(EntityType.java:520) at org.hibernate.type.EntityType.getIdentifierOrUniqueKeyType(EntityType.java:545) at org.hibernate.type.ManyToOneType.getColumnSpan(ManyToOneType.java:88) at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:276) at org.hibernate.mapping.ToOne.isValid(ToOne.java:105) at org.hibernate.mapping.Property.isValid(Property.java:207) at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:458) at org.hibernate.mapping.RootClass.validate(RootClass.java:215) at org.hibernate.cfg.Configuration.validate(Configuration.java:1135) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1320) at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:753) at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:691) at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1390) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1359) ... 29 more Caused by: java.lang.ClassNotFoundException: org.hibernate.usertype.UserType 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) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) ... 64 more
Working in I.T. means that I have several email addresses or more specifically I receive email sent to me on several email addresses.
When Acme Corporation asks me to build their network I create the email address acme@example.com for them to use. Everyone at Acme uses that email address to get in contact with me. When I have to talk to their prospective broadband provider I use that email address. In cases when I have control of their email system I create a generic I.T. person email address on their domain like it@acme.com and use that. When we part company I just reassign that address to one of their people and the handover is seamless.
When I receive email on a particular address I would like to respond on that email address. This helps me to separate the work. I create an email address for a client, then use that address for everything I do with them. Sure, you could use your normal email address but the more your email address is used in dealing with 3rd party companies in relation to your client company, the more difficult it is to remove it when the time comes. You will find that in spite of what those 3rd party companies have said, you are registered on all sorts of mailing lists and you’ll forever be receiving sales promotions about broadband services that you are not interested in any more.
When you come to parting ways the owness is on you to un-register yourself from all these lists. All email will be bounced back to the sender and you don’t have to do anything. It is far easier to just delete the email address then the owness is on the 3rd party companies to do the chasing.
- Login to GMail’s web interface.
- Click Settings in the top right.
- Click the Accounts tab.
- In the Send mail as section, click the link Add another email address you own.
- A window will pop-up and ask you to email an email address.
- Enter the email address you would like to send email as: it@acme.com and click Next Step.
- To combat spam GMail must send a verification email to the address you specify to make sure you are capable of receiving email on that address.
- So click the Send Verification button.
- The window moves on to a screen that lets you enter a confirmation code which is in the email GMail has just sent you.
- Depending on lots of complicated stuff the email might arrive in 1 second or it might arrive tomorrow, so I close this window down but clicking the Close window link at the bottom.
- Check your inbox periodically and when the email arrives it will have a subject of Example Confirmation - Send Mail as it@acme.com.
- Open up the email and click the confirmation URL embedded in the email.
- You will be taken to a web page that confirms that you can now send email as this new user.
- Head back into the Settings->Accounts section of GMail.
- In the Send mail as section, make sure When replying to a message is set to Reply from the same address to which the message was sent.