我用struts2.0+spring2.5+hibernate3.2写了个工程。由于用户信息需要加密,所以我用了UserType,将username和password加密。该项目在JUnit和Jetty下都能正常运行,但在tomcat6下却报如下错误。哪位能给点提示啊?
-------------------------------------------------------------
Struts has detected an unhandled exception: 
Messages: No entity found for query 
File: org/hibernate/ejb/QueryImpl.java 
Line number: 104 
--------------------------------------------------------------
我的程序@Entity
@Table(name="user")
public class User   implements java.io.Serializable {

private String userId;
private String username;
private String password;
@Id 
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid.hex")
@Column(name="USER_ID", unique=true, nullable=false)
public String getUserId() {
return userId;
} public void setUserId(String userId) {
this.userId = userId;
}
@Type(type = "EncryptType")
@Column(name="USERNAME")
public String getUsername() {
return username;
} public void setUsername(String userName) {
this.username = userName;
}
@Type(type = "EncryptType")
@Column(name="PASSWORD")
public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
}

}
public class EncryptType implements UserType {       public Object assemble(Serializable cached, Object owner) throws HibernateException {
            return null;
      }      public Object deepCopy(Object value) throws HibernateException {            if (value == null) {
                  return null;
            } else {
                  return new String((String) value);
            }
      }      public Serializable disassemble(Object value) throws HibernateException {            return null;      }      public boolean equals(Object x, Object y) throws HibernateException {            return (x == y) || (x != null && y != null && (x.equals(y)));      }      public int hashCode(Object x) throws HibernateException {
            return x.hashCode();
      }      public boolean isMutable() {
            return false;
      }      public Object nullSafeGet(ResultSet rs, String[] names, Object owner) throws HibernateException, SQLException {//Get bin data from database then decrypt to String            byte[] data = rs.getBytes(names[0]);            return Encryption.getInstance().decrypt(data);      }      public void nullSafeSet(PreparedStatement st, Object value, int index) throws HibernateException, SQLException {            if (value == null) {
                  return;
            }
//Encrypt String to bin data            byte data[] = Encryption.getInstance().encrypt(value.toString());
            st.setBytes(index, data);
      }      public Object replace(Object original, Object target, Object owner) throws HibernateException {
            return null;
      }      public Class returnedClass() {
            return java.lang.String.class;
      }      public int[] sqlTypes() {
            return new int[] { Types.BINARY };
      }
}
public class Encryption {      private Cipher en;
      private Cipher de;      public byte[] encrypt(String s) {            try {
                  byte[] data = s.getBytes();
                  if (data.length % 8 != 0) {
                        int length = 8 - data.length % 8;
                        byte[] spaces = new byte[length];
                        for (int i = 0; i < spaces.length; i++) {
                              spaces[i] = 0x20;
                        }
                        data = ArrayUtils.addAll(data, spaces);
                  }
                  return en.doFinal(data);            } catch (Exception e) {
                  throw new RuntimeException(e);
            }
      }      public String decrypt(byte[] b) {            try {
                  byte[] data = de.doFinal(b);
                  return new String(data).trim();
            } catch (Exception e) {
                  throw new RuntimeException(e);
            }      }      private Encryption() {            try {
                  DESKeySpec deskey = new DESKeySpec("X009我要理财".getBytes());
                  SecretKeyFactory skf = SecretKeyFactory.getInstance("DES");
                  SecretKey key = skf.generateSecret(deskey);
                  IvParameterSpec iv = new IvParameterSpec(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 });
                  en = Cipher.getInstance("DES/CBC/NoPadding");
                  en.init(Cipher.ENCRYPT_MODE, key, iv);
                  de = Cipher.getInstance("DES/CBC/NoPadding");
                  de.init(Cipher.DECRYPT_MODE, key, iv);            } catch (Exception e) {
                  throw new RuntimeException(e);
            }
      }      private static Encryption instance = new Encryption();      public static Encryption getInstance() {            return instance;      }
}数据库CREATE TABLE `user` (
  `user_id` varchar(32) NOT NULL DEFAULT '',
  `USERNAME` varbinary(128) DEFAULT NULL,
  `PASSWORD` varbinary(128) DEFAULT NULL,
 PRIMARY KEY (`user_id`)
)